我有幾個配置與我的應用程序進行調試/發佈版本以及32位和64位版本。現在有32位和64位構建,我需要引用不同的dll(即那些用x86構建的和用x64構建的那些),但引用似乎對我的項目是全局的,並且不依賴於配置。現在,當我從32位版本切換到64位版本(反之亦然)時,我總是必須交換參考。實現不同配置的不同參考的適當方式是什麼?使.NET引用依賴於配置
4
A
回答
2
這可以通過手動操作一些項目文件來完成。
首先你需要在項目上點右鍵,然後點擊卸載項目。然後再次右鍵單擊它並選擇編輯[項目名稱]。
當在編輯器中加載,你會看到不同的條目你refences:
<ItemGroup>
<Reference Include="System.Xml" />
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Common\Lib\3rdParty\Prism\4.0\Desktop\Microsoft.Practices.ServiceLocation.dll</HintPath>
</Reference>
</ItemGroup>
注意,這些是一個ItemGroup
節點內。 您現在可以執行一個小魔術...添加表達式到您的ItemGroup因此,如果構建配置一定的位數,它僅用於:
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<!-- these are the references used when there is a Release x86 build -->
<Reference Include="System.Xml" />
</ItemGroup>
注意,有沒有辦法通過這樣做用戶界面,所以你將不得不手動管理這些參考列表(例如,如果你需要添加另一個參考)。
另外請注意,這不是一個黑客...它只是利用其中一個features of MSBuild(由VS用於構建您的項目)。如果您喜歡使用任何表達式,您可以儘可能多地使用這些列表 - 如果它沒有表達式,那麼它將始終包含在構建中。
1
您可以在配置和/或平臺上創建csproj的任何部分,因此您可以將引用放入單獨的部分中。請注意,我認爲即使沒有更改,每次都會強制重建,因爲VS無法再確定是否需要重建。可能不是問題,但會增加編譯時間。
例如
<ItemGroup Condition=" '$(Platform)' == 'x86' " >
<Reference ...86bit DLL... >
</ItemGroup>
<ItemGroup Condition=" '$(Platform)' == 'x64' " >
<Reference ...64bit DLL... >
</ItemGroup>
我認爲你可以選擇使引用的提示路徑有條件,如果簽名中沒有任何變化,但我不記得。
0
相關問題
- 1. 依賴於.Net原生
- 2. 不依賴於.NET 4.6.1
- 3. 如何處理依賴於配置的gem依賴關係?
- 4. Maven配置文件依賴於另一個配置文件
- 5. 配置依賴於RequireJS配置RequireJS的模塊
- 6. JavaWS配置依賴關係
- 7. 配置Hibernate 3.6依賴
- 8. 配置WCF依賴關係
- 9. 如何引用依賴項中的maven配置文件?
- 10. 使默認sbt配置依賴於另一個
- 11. 使用.NET的API依賴關係
- 12. .NET VC++ Redist依賴
- 13. .NET依賴和XNA
- 14. .NET配置系統與MKBundle單聲道的依賴關係
- 15. 依賴注入:在對.NET核心注入配置2.0
- 16. .net環境中的依賴注入無需XML配置文件
- 17. 在.NET中查看Unity依賴關係配置
- 18. 如何在Visual Studio中正確配置依賴關係 - .NET
- 19. .NET WinForms - 不依賴於.NET Framework的應用程序?
- 20. .NET核心傳遞依賴用於.NET 4.6項目
- 21. 配置Autofac對於依賴於SignalR樞紐
- 22. 依賴倒置原則(適用於Java)
- 23. 如何引用在Xcode中使用不同配置構建的依賴項目?
- 24. 如何依賴於「當前」配置中的設置
- 25. RequireJS依賴覆蓋可配置依賴注入
- 26. 如何使用依賴於Kotlin的JavaScript進行依賴注入?
- 27. 力依賴於使用特定的子版本的依賴
- 28. Rails引擎依賴於另一個引擎,在哪裏添加依賴關係
- 29. 如何解決.NET依賴項版本不匹配時的引用問題?
- 30. 依賴於ODP.NET
+1解釋如何實際編輯csproj。我不相信這仍然是一個兩步的過程。 – JRoughan 2013-03-04 11:15:42
@JRoughan乾杯:)知道這件事很方便,有時候它非常有用 - 尤其是當你想發佈的內容與你希望開發團隊每天使用的內容不同時。 – slugster 2013-03-04 11:17:03