【问题标题】:Wix Bootstrapper MSI-Package logging, how?Wix Bootstrapper MSI-Package 日志记录,如何?
【发布时间】:2014-05-02 08:58:06
【问题描述】:

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

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

不,我想要一个 cmd 解决方案,我需要在我的设置中实现这个

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

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

谷歌搜索了很多次,都没有找到解决这个问题的方法,有什么帮助吗?

【问题讨论】:

    标签: logging wix windows-installer bootstrapper


    【解决方案1】:

    默认情况下(未设置 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" />
    

    【讨论】:

    • 但是我怎样才能把这个日志文件保存到安装目录中呢?
    • 我用自定义目标案例的信息更新了我的答案。
    • 不幸的是它不起作用。我创建的变量每次都会被默认日志位置 (%TEMP%) 覆盖
    【解决方案2】:

    我就是这样做的:

    在Bundle下添加Log元素:

     <Log PathVariable="LOGPATH_PROP" Disable="yes" Prefix='[WixBundleOriginalSource]' Extension=".txt" />
    

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

    【讨论】:

      【解决方案3】:

      包安装和包日志都将创建到%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-

      【讨论】:

        【解决方案4】:

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

        <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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-02
          相关资源
          最近更新 更多