依赖性定义

时间:2011-05-18 22:19:23

标签: c# msbuild dependencies

我有一个C#项目需要编译为x86或x64,并根据体系结构引用不同的本机程序集。我意识到我可以将它们包括在内并分配不同的别名,并在每个文件中使用#if语句,但这非常麻烦。

有没有办法根据编译器条件更改项目的依赖项?

2 个答案:

答案 0 :(得分:2)

最简单的方法是利用构建配置。你需要做一些手动的MSBuild(.csproj)文件编辑,但它的工作非常好:

This Link有一个很好的例子说明如何解决这个问题。

答案 1 :(得分:0)

那不幸的是PITA!我怀疑你的#if语句是否有效(我保留被证明是错误的权利),因为每个依赖项都需要在参考部分中作为参考。我解决它的方法是编辑每个项目的msbuild(.csproj)文件,并创建一个条件ItemGroup,其中包含适当平台的引用。

<ItemGroup Condition="'$(Platform)' == 'x86'">
   <Reference Include="System" />
   <Reference Include="System.Data" />
   <Reference Include="System.Xml" />
</ItemGroup>