gpt4 book ai didi

WiX 工具集默认日志文件位置

转载 作者:行者123 更新时间:2023-12-04 13:43:39 26 4
gpt4 key购买 nike

我已经使用 WiX 几个星期了,但仍然发现很难获得关于事情应该如何工作的好信息。其中之一是日志记录。我需要让安装程序将日志文件写入特定位置,而无需用户添加任何/l 命令行参数。我看到有一个 Log命令,但它的父元素是 Bundle,它是创建捆绑包的根元素。我有一个简单的安装程序,所以我的情况可能不需要。这应该很容易吧?

最佳答案

1 .这是最简单的解决方案(如果我是你,我会这样做) - 创建一个执行以下命令的批处理文件:

   msiexec /i MyProduct.msi /L*V "%TEMP%\MyProduct.log"
将批处理文件中的路径编辑为所需的自定义路径。
2 .您可以使用 MSILogging Property在命令行之外设置日志记录。但此属性仅在 Windows Installer 4.0 中可用。
基本上,您需要在 .wxs 文件中添加一个新属性:
<Property Id="MsiLogging" Value="voicewarmupx!"/>
  • v – 详细输出
  • o – 磁盘空间不足消息
  • i – 状态消息
  • c – 初始 UI 参数
  • e – 所有错误信息
  • w – 非致命警告
  • a – 行动启动
  • r – 特定于操作的记录
  • m – 内存不足或致命退出信息
  • u – 用户请求
  • p – 终端属性
  • ! – 将每一行刷新到日志
  • x – 额外的调试信息

  • 这将确保将在 %temp% 文件夹中创建日志文件,日志文件的名称将类似于“MSI*.LOG”。日志文件的完整路径可以从此属性和 MsiLogFileLocation 中读取。 .但是 MsiLogFileLocation 属性是只读的,不能设置。
    现在这不能满足您在自定义位置创建日志文件的要求,因为我们无法设置日志文件位置。我们无法在 WIX 中设置日志文件位置的原因是因为我们需要在 Windows 安装程序引擎实际开始执行 MSI 之前告诉 MSIEXEC 将日志文件写入何处。
    要解决此问题,您可以做的一件事是添加自定义操作并将日志文件从 %temp% 文件夹复制到所需的文件夹。它会是这样的:
    <CustomAction Id="CopyLogFile" Execute="immediate" 
    ExeCommand="cmd /c copy [MsiLogFileLocation] C:\customlocation\MyProduct.log"
    Directory="TARGETDIR"
    Impersonate="no"
    Return="asyncNoWait" />

    <InstallExecuteSequence>
    <Custom Action="CopyLogFile" OnExit="success" />
    </InstallExecuteSequence>

    关于WiX 工具集默认日志文件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38249881/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com