我使用了以下wix片段来更新“PATH”环境变量。
<DirectoryRef Id="MyDir">
<Component Id ="setEnviroment"
Guid=" xxxxx">
<CreateFolder />
<Environment Id="SET_ENV"
Action="set"
Name="PATH"
Part="last"
Permanent="no"
System="yes"
Value="[INSTALLLOCATION]" />
</Component>
</DirectoryRef>
<Feature Id="Feature3" Title="3Feature"
Level="1"
Absent="disallow"
AllowAdvertise="no">
<ComponentRef Id="setEnviroment"/>
</Feature>
<InstallExecuteSequence>
<WriteEnvironmentStrings/>
<InstallExecuteSequence/>
这最初是有效的,但现在它不会更新环境变量。 详细日志显示此操作的执行并返回值1。 重启机器后检查。 在功能日志FeaturePublish For Feature3中,存在垃圾值,但安装成功。 请求你的帮助...... 非常感谢....
答案 0 :(得分:12)
我认为您正在使用INSTALLLOCATION,意思是使用INSTALLDIR。这是一个工作示例,它使用新应用程序的安装目录更新PATH环境var。
<Environment
Id="PATH"
Name="PATH"
Value="[INSTALLDIR]"
Permanent="yes"
Part="last"
Action="set"
System="yes" />
如果打算使用INSTALLLOCATION,并在其他地方定义,那么请发布剩下的代码,我们将进一步深入兔子洞。
答案 1 :(得分:0)
我需要使用INSTALLFOLDER来使其正常工作。
restore: {
conditions: function() {
var
animation = module.get.currentAnimation();
if (animation) {
$module
.removeClass(animation);
module.verbose('Removing animation class', module.cache);
}
module.remove.duration();
}
},
add: {
failSafe: function() {
var
duration = module.get.duration();
module.timer = setTimeout(function() {
$module.triggerHandler(animationEnd);
}, duration + settings.failSafeDelay);
module.verbose('Adding fail safe timer', module.timer);
}
},
remove: {
animating: function() {
$module.removeClass(className.animating);
},
animationCallbacks: function() {
module.remove.queueCallback();
module.remove.completeCallback();
},
queueCallback: function() {
$module.off('.queue' + eventNamespace);
},
completeCallback: function() {
$module.off('.complete' + eventNamespace);
},