使用WiX设置环境变量,在路径

时间:2018-05-01 12:40:03

标签: wix3.5

我正在使用WiX“Environment”元素来设置环境变量。

<Environment Action="create" Name="My_Certificates" System="yes" Id="certificate_env" Value="[CERT_XML_PATH]" Permanent="yes" />

CERT_XML_PATH设置如下:c:\ this \ is \ my \ path \ myfile.xml

如果该文件确实存在,则正确设置环境变量并指向该文件。 如果在安装时该特定文件不存在,则会创建并设置环境变量,但会截断该路径以删除myfile.xml部分。

此安装程序是更大套件的一部分。它有自己的独立MSI。安装其中一个软件包会创建此xml文件,但不会创建我正在处理的特定文件。如果已创建xml文件,一切正常。但如果首先运行此安装程序,则会将环境变量设置为

创建环境变量“My_Certificates”,但设置为:

  • C:\此\是\我\路径\

而不是:

  • C:\此\是\我\路径\ myfile.xml中

故障排除:

安装日志显示属性设置为正确的位置。

MSI(s)(70:80)[15:27:44:988]:PROPERTY CHANGE:添加CERT_XML_PATH属性。它的值是'c:\ this \ is \ my \ path \ myfile.xml'。

然后我们看到安装程序使用正确的路径(包括xml文件)执行WriteEnvironmentStrings。

MSI(s)(70:80)[15:27:50:644]:执行op:UpdateEnvironmentStrings(Name = My_Certificates,Value = c:\ this \ is \ my \ path \ myfile.xml,Delimiter = [〜],动作= 536870914)

WriteEnvironmentStrings:Name:My_Certificates,Value:c:\ this \ is \ my \ path \ myfile.xml,Action 536870914

screen shot of system variables showing it not set properly

非常感谢任何有关文件名被截断的原因。

1 个答案:

答案 0 :(得分:0)

发现了这个问题。安装程序中还有一个自定义操作,它还尝试设置环境变量。禁用该自定义操作时,一切都按预期工作。