2011-05-18 189 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>