我正在使用Visual Studio 2013 / ISLE创建一个带有.msi安装映像的C#程序。当我从VS运行安装时,程序安装在预期的位置,例如c:/ Program Files(x86)/ ...
我确信这很简单,但我无法弄明白。非常感谢指针。
答案 0 :(得分:0)
在x 64位系统中运行32位安装程序时,Windows将始终将安装程序写入c:\Program Files
重定向到c:\program files (x86)
。如果要安装到非x86文件夹,则需要为应用程序提供64位安装程序。
这blog post explains why Windows does this。
看起来像InstallShield LE will allow you to write to the correct folder when your project is set to AnyCPU,但是对于更高级的方案,您需要使用专业版或free Wix installer。
答案 1 :(得分:0)
我假设问题是为什么安装MSI在Visual Studio之外运行时失败,但是当VS启动时它会起作用?
如果是,您应首先检查您的ISLE项目是否正在创建MSI或EXE引导程序(也包含MSI)。如果创建了EXE,则应该手动启动,而不是MSI。从理论上讲,引导程序可以像MSI的初始化支持一样,并为某些属性指定默认值,如安装文件夹等......
我在理论上说因为我对ISLE不太熟悉,所以我使用其他设置创作工具,因此无法确定这是否代表ISE项目。