Ссылка на проект в проекте в стиле SDK игнорирует условие для переходных зависимостей

#c# #.net-core #msbuild

Вопрос:

У меня есть решение, состоящее из 3 проектов

  • _TestSDK — основной проект (в стиле SDK, net48)
  • TestTool — проект библиотеки (не в стиле SDK, net FW4.8)
  • PSWrapper — проект библиотеки (не в стиле SDK, net FW4.8)

Готовое к использованию решение можно найти здесь: https://github.com/snechaev/sdk-style-project-ref/tree/master

Зависимости следующие

  • _TestSDK Рекомендации TestTool
  • TestTool условные ссылки PSWrapper (только для DebugJS конфигурации сборки)
 <ProjectReference Include="..PSWrapperPSWrapper.csproj"
    Condition="'$(Configuration)'=='DebugJS'">
  <Project>{1675096e-bf7b-486b-89f9-dfe147418dbc}</Project>
  <Name>PSWrapper</Name>
</ProjectReference>
 

Кроме того, в диспетчере конфигурации PSWrapper проект настроен на сборку только в DebugJS конфигурации.

Проблема в том, что я не могу создать _TestSDK проект в Release конфигурации в Visual studio 2019 (16.10.2). Я получил ошибку

 2>CSC : error CS0006: Metadata file 
'D:projectPSWrapperbinReleasePSWrapper.dll' could not be found
 

Хотя в Release конфигурации PSWrapper проект не должен использоваться каким-либо образом, так как он ограничен только DebugJS конфигурацией по Condition атрибуту.

Если я построю PSWrapper вручную, а затем попытаюсь построить _TestSDK снова, сборка завершится успешно , но в выходном каталоге будет PSWrapper.dll , чего не должно быть для Release настройки.

Я создал проект в старом стиле _TestFW , который просто ссылается TestTool на проект (точно так же, как _TestSDK и делает). И для _TestFW того, чтобы все работало нормально.

Итак, вопрос в следующем: можно ли заставить проект в стиле sdk уважать Condition атрибут для переходных ссылок?

Примечание: преобразование TestTool и PSWrapper проекты в стиле sdk на данный момент не вариант.