#c# #msbuild #dependencies
#c# #msbuild #зависимости
Вопрос:
У меня есть проект на C #, который необходимо скомпилировать либо как x86, либо как x64 и ссылаться на разные собственные сборки в зависимости от архитектуры. Я понимаю, что мог бы включить их оба и назначить разные псевдонимы и в каждом файле использовать оператор #if, но это довольно громоздко.
Есть ли какой-либо способ изменить зависимости проекта на основе условия компилятора?
Комментарии:
1. На какие сборки вы ссылаетесь?
Ответ №1:
Самый простой способ — использовать конфигурации сборки. Вам нужно немного отредактировать файл MSBuild (.csproj) вручную, но это работает действительно хорошо:
По этой ссылке приведен отличный пример того, как это сделать.
Комментарии:
1. Поддерживаю. Конфигурации MS-Build сделают это довольно простым. Просто откройте . CSPROJ и добавьте некоторую конфигурацию группы условных элементов.
Ответ №2:
К сожалению, это пустяк! Я сомневаюсь, что ваше утверждение #if сработает (я оставляю за собой право доказать свою неправоту), поскольку каждая зависимость должна быть ссылкой в разделе references. Способ, которым я обошел это, заключается в редактировании файла msbuild каждого проекта (.csproj) и создании условной ItemGroup, которая содержит ссылки для соответствующей платформы.
<ItemGroup Condition="'$(Platform)' == 'x86'">
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>