在我的项目中,我使用了两种配置--32位和64位(因为我在32位机器上开发但部署到64位机器上)。
我的项目包含类库,位于" C:... \ Commons \ bin \ Debug \ Commons.dll"。我已将此dll添加到参考文献中,但当然,当我切换到64位时,这不起作用。
所以我需要添加"特定于平台的引用的机制"。
我知道我可以手动编辑.csproj文件来添加类似的内容:
<Reference Include="Commons" Condition="$(Platform) == 'x64'">
<HintPath>..\Commons\bin\x64\Release\Commons.dll</HintPath>
</Reference>
<Reference Include="Commons" Condition="$(Platform) == 'x86'">
<HintPath>..\Commons\bin\x86\Release\Commons.dll</HintPath>
</Reference>
我应该为类库做同样的事吗?
我只是想知道VS并不支持平台相关参考的机制&#34;甚至是类库?
upd 似乎我实际上需要以某种方式链接4种类型的dll - x86 / Debug,x86 / Release,x64 / Debug,x64 / Release
答案 0 :(得分:1)
事实上你不应该这样做。您必须将代码编译为MSIL,并添加对MSIL版本的dll的引用。您的代码和引用的代码将在运行时由运行时编译。如果它在x86计算机上运行,那么它将被编译为x86,在x64计算机上它将被编译为x64。你不必担心它。
如果你认为JIT很慢并且你需要性能,那么你可以在目标计算机上使用你的程序集。
答案 1 :(得分:0)
以下问题可以解决您的问题。希望这有帮助。
Conditionally use 32/64 bit reference when building in Visual Studio