我正在使用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”,但设置为:
而不是:
故障排除:
安装日志显示属性设置为正确的位置。
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
非常感谢任何有关文件名被截断的原因。
答案 0 :(得分:0)
发现了这个问题。安装程序中还有一个自定义操作,它还尝试设置环境变量。禁用该自定义操作时,一切都按预期工作。