我有一个.NET应用程序,可以在32位和64位工作。 我想编写一个安装到c:\ program files的安装程序,而不是c:\ program files(x86),无论平台如何。
从这个链接: http://msdn.microsoft.com/en-us/library/w1behyzx(v=VS.90).aspx 看起来不太可能。是这样的吗?
答案 0 :(得分:9)
根据How to: Create a Windows Installer for a 64-bit Platform:
分发.NET Framework 适用于32位和64位 平台,构建两个MSI包,一个 目标是32位,另一个是a 64位电脑。用户可以安装 32位安装项目包和 它最有可能以64位运行 应用程序,只有64位安装程序 项目将安装到“程序 Files64“目录。
不是最佳体验,但有效。
更新:人们处理他们避免使用两个安装程序包的愿望的通常方法是生成一个安装程序可执行文件,它包含安装程序并动态选择正确的安装程序。
你可以创建一个快速的C#(虽然现在你有在没有.Net的机器上引导它的问题。是的,是否有这样的机器?:-))或C ++可执行程序自己检测它运行的平台和使用从可执行资源中提取的或从Web siter下载的正确.msi启动msiexec进程。
或this SO question's accepted answer简要介绍了这一点,并提到了一个名为Advanced Installer的第三方工具,它可以帮助您解决这个问题。请注意,我没有尝试过这个工具,我也不能保证它,我只是提到它仅供参考;你必须自己评估它。 : - )
答案 1 :(得分:1)
如果你的应用程序工作在32位和64位,它是32位,因此它进入(x86)文件夹。
答案 2 :(得分:0)
此链接http://msdn.microsoft.com/en-us/library/cd7a85k9%28v=VS.90%29.aspx(在您发布的链接中引用)包含此部分:在64位平台上将文件安装到Common Files,Program Files或System文件夹。
这可以帮助您,只要您定位到x64平台并且没有对仅限x86的库的任何引用。
答案 3 :(得分:0)
我使用WiX安装包。请查看以下文章,看它是否符合您的要求:
Example WiX-based setup that can be used to build both 32-bit and 64-bit MSIs
取值