我的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变量?
答案 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 ,了解该组件的安装方式。