Wix Bootstrapper MSI-Package日志记录,怎么样?

时间:2014-05-02 08:58:06

标签: logging wix windows-installer bootstrapper

我有一个安装 MSI包的引导程序。

我怎样才能实现至少msi-package-installation被记录(详细记录)?我在哪里可以设置日志文件路径?因为我无法记录所有内容?

不,我想要一个 cmd-solution ,我需要将实现到我的设置中

找到了LogPathVariable,但实际上并不知道它是如何工作的?

<MsiPackage SourceFile="$(var.Setup.TargetPath)" LogPathVariable="" />

google了很多次,并没有找到解决这个问题的方法,有什么帮助吗?

4 个答案:

答案 0 :(得分:9)

默认情况下(没有LogPathVariable设置)将在C:\ Users \ username \ AppData \ Local \ Temp中创建日志,MSI日志将是详细的,还会有一个日志用于引导程序。

对于自定义目标,您可以创建变量并进行设置

<Variable Name="MyLogDestination" Type="string" Value=path to where you want log created />

您可以将burn variables中的一个与部分路径结合使用。我想

<Variable Name="MyLogDestination" Type="string" Value="[ProgramFiles6432Folder]\YourProduct\" /> 

虽然我没试过,但可能有用。

然后,您可以将变量名称放在LogPathVariable

<MsiPackage SourceFile="$(var.Setup.TargetPath)" LogPathVariable="MyLogDestination" />

答案 1 :(得分:2)

我就是这样做的:

在Bundle:

下添加Log元素
 <Log PathVariable="LOGPATH_PROP" Disable="yes" Prefix='[WixBundleOriginalSource]' Extension=".txt" />

然后在MsiPackage元素中将LogPathVariable设置为“LOGPATH_PROP”。关键是在Log元素中将Disable属性设置为yes。

答案 2 :(得分:1)

捆绑安装和软件包日志都将创建到%TEMP%(C:\ Users \ username \ AppData \ Local \ Temp)中。

日志文件的命名方案为:

BundleName_yyyyMMddHHmmss.log

安装开始的日期和时间。对于每个链接的MSI程序包,Burn会自动启用详细日志记录。链接的程序包日志文件的命名方案为:

BundleName_yyyyMMddHHmmss _#_ PackageId.log

其中#表示应用程序包的顺序。如果安装失败并且回滚期间删除了该软件包,则同一个软件包可能会多次显示#s。 (例如BundleName_yyyyMMddHHmmss_002_FailedPackage_rollback.log)

要获取捆绑软件安装程序的位置路径,可以使用BootstrapperApplication.Engine.StringVariables[WixBundleLog],要获取软件包日志文件,可以使用BootstrapperApplication.Engine.StringVariables[WixBundleLog_packageId]

如果要更改默认位置(%TEMP%),可以使用MsiPackage元素的LogPathVariable属性提供自定义日志文件名:

请参阅:http://wixtoolset.org/documentation/manual/v3/xsd/wix/msipackage.html

也:https://support.firegiant.com/hc/en-us/articles/230912207-Pass-Properties-to-MsiPackage-from-Bundle-

答案 3 :(得分:0)

这将为您创建一个空的日志文件夹...

<Directory Id="LOGSDIR" Name="logs">
    <Component Guid="GUID" Id="ID" KeyPath="no" NeverOverwrite="no" Permanent="no" Location="local" Permanent="no">
        <CreateFolder>
            <util:PermissionEx CreateChild="yes" CreateFile="yes" Delete="yes" DeleteChild="yes" Read="yes" ReadAttributes="yes" ReadExtendedAttributes="yes" ReadPermission="yes" Traverse="yes" GenericRead="yes" GenericWrite="yes" User="Everyone" />
        </CreateFolder>
    </Component>
</Directory>