你可以通過手工編輯.csproj
(或.vbproj
)文件來添加條件。
- 保存項目中的任何工作。
- 右鍵單擊solution explorer中的項目節點,然後單擊
Unload Project
。
- 整個項目將摺疊成一個節點。右鍵單擊該節點並選擇
Edit <Project Name>.csproj
(或.vbproj
)。
向下滾動並查找您用於的DLL。它應該看起來像這樣:
<ItemGroup>
<Content Include="bin\Release\x86\My.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
複製它並添加一個條件。在這種情況下,您想要基於平臺進行更改。這是一種方法。請注意,您應該分析項目文件以確定爲特定配置添加的最佳條件。您還應該更改目錄以匹配您的32位和64位DLL文件的(相對)位置。
<ItemGroup Condition=" '$(PlatformTarget)' == 'x86' ">
<Content Include="bin\$(Configuration)\x86\My.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition=" '$(PlatformTarget)' == 'x64' ">
<Content Include="bin\$(Configuration)\x64\My.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
Visual Studio中沒有正確顯示這(它會顯示一個破碎的DLL鏈接和有效的DLL鏈接),但是放心這個方法的功能。這也有助於理解Visual Studio項目文件不過是一個MSBuild配置文件。因此,儘管Visual Studio不支持添加或顯示條件或其他MSBuild選項的方法,但如果根據MSBuild文檔進行配置,它們都將正常運行。
謝謝!這很好地處理平臺特定的dll。我確實收到警告,我用' false '消除了。 –
2015-02-07 21:35:09
謝謝,我不知道''元素。我想還有一個[''元素](http://stackoverflow.com/questions/2961753/how-to-hide-files-generated-by-custom-tool-in-visual-studio#3090168)做同樣的事情。但是,它們似乎不適用於有條件的項目引用,至少在VS2012中不適用。 –
NightOwl888
2015-02-11 09:37:15