安装WIX生成的MSI后没有设置环境变量

时间:2015-05-18 09:32:26

标签: wix environment-variables

我的WSX文件如下所示:https://gist.github.com/pyeremenko/891eceb779197e4be240#file-sample-wxs-L23-L25

复制工作正常,即Program Files/test/my_test文件夹中的exe文件可用,但我通过TEST安装后无法访问echo %test% env变量(当然我重新加载cmd)

我还尝试在系统属性>中查找它环境变量,但没有这样的变量

如何使MSI注册env变量?

1 个答案:

答案 0 :(得分:1)

使用WIX 3.9构建上述WSX文件会产生以下错误:

Product.wxs(23,0): error LGHT0204: ICE18: KeyPath for Component: 'EnvVariable' is Directory: 'INSTALLDIR'. The Directory/Component pair must be listed in the CreateFolders table.
Product.wxs(23,0): error LGHT0204: ICE21: Component: 'EnvVariable' does not belong to any Feature.

要安装,组件EnvVariable需要与功能相关联。尝试将<Environment...><File...>合并为一个组件:

    <Component Id='MainExecutable' Guid='77777777-8888-4fb0-892f-d62579f11b8d'>
       <File Id='my_testexe' Name='hello.exe' DiskId='1' Source='D:\Robert\Documents\Visual Studio 2013\Projects\SetupProject1\Release\ConsoleApplication1.exe' KeyPath='yes' />
       <Environment Id='UpdateTest' Name='TEST' Action='set' Permanent='yes' System='yes' Part='all' Value='TestTestTest' />
    </Component>

删除现在为空的组件<Component Id='EnvVariable'...>

如果仍有问题,可以尝试使用诊断日志记录运行安装程序:

msiexec /l*v Install.log /i InstallPackage.msi

在文件Install.log中搜索 MainExecutable ,了解该组件的安装方式。