#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 на данный момент не вариант.