如果我需要32位和64位,如何添加对类库的引用

时间:2012-05-30 08:36:38

标签: c# visual-studio-2010

在我的项目中,我使用了两种配置--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

2 个答案:

答案 0 :(得分:1)

事实上你不应该这样做。您必须将代码编译为MSIL,并添加对MSIL版本的dll的引用。您的代码和引用的代码将在运行时由运行时编译。如果它在x86计算机上运行,​​那么它将被编译为x86,在x64计算机上它将被编译为x64。你不必担心它。

如果你认为JIT很慢并且你需要性能,那么你可以在目标计算机上使用你的程序集。

答案 1 :(得分:0)

以下问题可以解决您的问题。希望这有帮助。
Conditionally use 32/64 bit reference when building in Visual Studio