.csproj的特定于平台的ItemGroup适用于程序集引用但不包含内容?

Jör*_*ann 18 .net assemblies cpu-architecture

由于我们有三个显式x86和x64版本的程序集,因此我编辑了相应的.csproj文件,例如,这样的块:

  <ItemGroup Condition=" '$(Platform)' == 'x86' ">
    <Reference Include="CaliberRMSDK">
      <HintPath>..\Libraries\CaliberRMSDK_IKVM\32bit\CaliberRMSDK.dll</HintPath>
    </Reference>
    <Content Include="..\Libraries\CaliberRMSDK_IKVM\32bit\ikvm-native.dll">
      <Link>ikvm-native.dll</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="..\Libraries\CaliberRMSDK_IKVM\32bit\JVM.dll">
      <Link>JVM.dll</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <ItemGroup Condition=" '$(Platform)' == 'x64' ">
    <Reference Include="CaliberRMSDK">
      <HintPath>..\Libraries\CaliberRMSDK_IKVM\64bit\CaliberRMSDK.dll</HintPath>
    </Reference>
    <Content Include="..\Libraries\CaliberRMSDK_IKVM\64bit\ikvm-native.dll">
      <Link>ikvm-native.dll</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="..\Libraries\CaliberRMSDK_IKVM\64bit\JVM.dll">
      <Link>JVM.dll</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

在Visual Studio 2010中重新加载.csproj文件并使用"x86"作为平台时,所有工作都非常好.当选择'x64'作为平台时,使用正确的64位汇编参考但是链接的(<Content Include= ...>..)总是使用32位的(因此应用程序被破坏).

在项目文件中不再有任何CPU,我会'期望'它也适用于内容包括..但它没有.有什么我想念的吗?

Jör*_*ann 1

所以这“只是”一个视觉/显示问题。下面的构建确实使用了正确的引用等,只有 VS2010 显示错误的引用。一切都很好,只是看不见。