安装屏蔽msi文件安装到错误的目录(错误1309)



我正在使用Visual Studio 2013/ISLE创建一个带有.msi安装映像的C#程序。当我从VS运行安装时,程序安装在预期的位置,例如c:\/program Files(x86)/。。。

我确信这是一件简单的事情,但我想不通。如有任何指示,我们将不胜感激。

当您在x 64位系统中运行32位安装程序时,Windows将始终将您的安装程序写入c:Program Files重定向到c:program files (x86)。如果要安装到非x86文件夹,则需要为应用程序提供64位安装程序。

这篇博客文章解释了Windows为什么这么做。

当您的项目设置为AnyCPU时,InstallShield LE似乎可以允许您写入正确的文件夹,但对于更高级的场景,您需要使用Pro版本或免费的Wix安装程序。

我想问题是,为什么安装MSI在Visual Studio之外运行时失败,而在VS启动时工作?

如果是,您应该首先检查您的ISLE项目是否正在创建MSI或EXE引导程序(也包含MSI)。如果创建了EXE,这是您应该手动启动的,而不是MSI。理论上,引导程序可以充当MSI的初始化支持,并为某些属性指定默认值,如安装文件夹等。

我说在理论上,因为我不太熟悉ISLE,我使用其他设置创作工具,因此不能确定这是否也代表ISE项目。

最新更新