我有一个需要x64和x86 dll的程序(它会在运行时确定它需要哪些),但在尝试创建设置时,它会抱怨:
文件AlphaVSS.WinXP.x64.dll'目标'AMD64'与项目的目标平台'x86'不兼容
文件AlphaVSS.Win2003.x64.dll'目标'AMD64'与项目的目标平台'x86'不兼容
文件AlphaVSS.Win2008.x64.dll'目标'AMD64'与项目的目标平台'x86'不兼容
如何让我的设置定位到我的程序这两个平台?
答案 0 :(得分:11)
安装项目(在Visual Studio中)创建的MSI一次只能定位一个平台。您可以选择制作2个MSI,将它们合并在一起并制作一个可在两者之间进行选择的自定义安装启动板。 有一些第三方产品,例如Advanced Installer,可以为您做到这一点。
答案 1 :(得分:5)
我也碰到了这个问题wrote a blog post关于我的解决方案:
deflate.exe
文件可以从谷歌代码的repository下载。
答案 2 :(得分:1)
.Net有一个“任何CPU”选项。很容易将它看作更多的“通用”选项,它只会使用较小的x86功能,但实际上它让每台机器上的JIT编译器为该机器选择合适的cpu类型。
唯一不应该使用它的方法是,如果您知道自己的依赖关系或要求对一个体系结构或另一个体系结构不利。例如:你知道你需要ram的 lot ,你对32位本机dll有所依赖,或者你想要预编译应用程序。
这里有一个危险,因为你有一个特定于平台的dll依赖性。但你有两种类型的dll,听起来你知道如何在运行时选择正确的。那么'Any CPU'选项对你有用吗?
答案 3 :(得分:-2)