如何设置自定义值到Wix包日志元素?



如果我输入一个硬编码的值,它会正常工作

<Log PathVariable="C:myProjectDirmyLogslog.txt"/>

但是如果我创建一个单独的变量并替换硬代码,它就不起作用了

<Log PathVariable="[LogLocation]"/>
<Variable Name="LogLocation" bal:Overridable="no" Type="string" Value="C:myProjectDirmyLogslog.txt" Persisted="yes"/>

我在<WixVariable Id="WixBundleLog"/>的行中发现了一些东西,但是我真的不知道如何使用它。

我的最终目标是我有一个引导程序应用程序,我想改变我的msi和exe安装日志创建的位置

I able able可以改变变量元素值使用_bootstrapper.Engine.StringVariables["LogLocation"] = "C:ProjectGorillalogslog.txt"

在c#中使用上述代码,变量Id="LogLocation">被更改了,但是这个更改没有反映在Log元素的PathVariable

所以,我的问题是如何在Log元素的PathVariable属性中放置一个变量

Thanks in advance:)

根据文档,PathVariable属性为:

保存日志文件路径的变量名。空值将导致不设置该变量。默认为"WixBundleLog"

PathVariable没有指定将写入(bundle)日志的路径。如果BA想要将文件复制到其他地方,它应该读取这个变量。Burn引擎永远不会读取这个变量的值,所以在运行时更改它不会做任何事情。

在加载BootstrapperApplication (https://github.com/wixtoolset/wix3/blob/58abd6993afba08b39e37b0e76b1790161df9231/src/burn/engine/engine.cpp#L545)之前创建(bundle)日志(https://github.com/wixtoolset/wix3/blob/58abd6993afba08b39e37b0e76b1790161df9231/src/burn/engine/engine.cpp#L499)。BA无法更改路径。

包(MSI, EXE等)日志位置今天的工作方式与bundle日志相同。但是,由于它们是在加载BA之后创建的,因此理论上可能有人可以实现一个功能,以便BA可以更改它们的路径。

最新更新