Определения зависимостей

#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>