两个包装器(x86和x64)能否用于同一个AnyCPU应用程序? 是否有任何解决方案,将一个应用程序编译为目标平台,作为依赖于传统C++代码的.NET包装的任意CPU,同时都适用于x86和x64操作系统?您是否需要在所有情况下都提供两个应用程序可执行文件,一个是以x86为目标平台编译的,另一个是分别引用x86包装器和x64包装器的x64

两个包装器(x86和x64)能否用于同一个AnyCPU应用程序? 是否有任何解决方案,将一个应用程序编译为目标平台,作为依赖于传统C++代码的.NET包装的任意CPU,同时都适用于x86和x64操作系统?您是否需要在所有情况下都提供两个应用程序可执行文件,一个是以x86为目标平台编译的,另一个是分别引用x86包装器和x64包装器的x64,.net,deployment,64-bit,portability,.net,Deployment,64 Bit,Portability,谢谢 我使用一个launcher应用程序,它将测试操作系统并移动DLL,以便在运行时使用正确的DLL(在32位操作系统上使用x86 DLL,等等)。启动器中的逻辑非常简单。比如: If IntPtr.Size = 8 Then '-- Copy x64 DLLs into position Else '-- Copy x86 DLLs into position End If 当然,在复制时,您需要复制回去,以便始终可以在x64和x86之间切换(对于便携式应用程序)。但是,如果您正在安

谢谢

我使用一个launcher应用程序,它将测试操作系统并移动DLL,以便在运行时使用正确的DLL(在32位操作系统上使用x86 DLL,等等)。启动器中的逻辑非常简单。比如:

If IntPtr.Size = 8 Then
  '-- Copy x64 DLLs into position
Else
  '-- Copy x86 DLLs into position
End If
当然,在复制时,您需要复制回去,以便始终可以在x64和x86之间切换(对于便携式应用程序)。但是,如果您正在安装一个不可移植的应用程序,那么就不需要启动程序,因为这个操作系统检查都可以在安装程序内部完成(因此只有正确的DLL才能安装)。VisualStudio安装项目不允许这样做(因为您不能在一个安装程序中混合使用x64和x86组件),但InstallShield允许这样做(这就是我使用的)

您将需要编辑项目文件以使用所讨论的DLL的非特定版本(否则,这种移动和条件安装逻辑将无法实现您所希望的功能)