SlimDX 和多种架构

SlimDX and Multiple Architectures

我正在尝试构建一个可以在 x64 和 x86 中构建的项目。我正在使用 SlimDX 作为 DirectSound 的互操作。我无法更改它,因为它是更大应用程序的一部分。

当项目设置为在 Win32/x86 中构建时,我试图引用 SlimDX 的 x86 版本,而当我在 AnyCPU 中构建时,我试图引用 SlimDX 的 x64 版本。这可能吗?我试过在 csproj 文件中使用条件,但这似乎不起作用。

<ItemGroup>        
    <Reference Include="SlimDX, Version=4.0.13.43, Culture=neutral, PublicKeyToken=b1b0c32fd1ffe4f9" Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\SlimDX\x86\SlimDX.dll</HintPath>
    </Reference>
    <Reference Include="SlimDX, Version=4.0.13.43, Culture=neutral, PublicKeyToken=b1b0c32fd1ffe4f9" Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\SlimDX\x64\SlimDX.dll</HintPath>
    </Reference>
<ItemGroup>

这个是可以的,也可以直接在路径中添加平台目标:

<Reference Include="SlimDX">
  <HintPath>..\SlimDX$(Platform)\SlimDX.dll</HintPath>
</Reference>

Visual studio 会向您发送一些体系结构不匹配警告,但在您的情况下可以安全地忽略它们(因为您最终将以 64 位启动)。