Поскольку у нас есть три сборки, представленные в явных версиях 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>
При перезагрузке файла .csproj в Visual Studio 2010 и использовании «x86» в качестве платформы все отлично работает. При выборе «x64» в качестве платформы используется правильная ссылка на 64-битную сборку НО для связанной (<Content Include= ...>
..) всегда используются 32-битные (и поэтому приложение не работает) .
В файлах проекта больше нет ЦП, и я бы «ожидал», что он будет работать нормально, даже для содержимого… но это не так. Я что-то пропустил?