2011-05-18 144 views
2

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

有什么方法可以根据编译器条件来改变项目的依赖关系吗?

+0

你引用了什么样的组件? – SLaks 2011-05-18 22:28:37

回答

2

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

This Link有一个很好的例子来说明如何去做这件事。

+0

借调。 MS-Build配置将使这非常容易。只需打开.CSPROJ并添加一些条件项目组配置。 – 2011-05-18 22:28:53

0

不幸的是一个PITA!我怀疑你的#if语句会起作用(我保留被证明是错误的权利),因为每个依赖项都需要成为参考部分的参考。我解决这个问题的方法是编辑每个项目的msbuild(.csproj)文件,并创建一个具有相应平台参考的条件ItemGroup。

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