【问题标题】:Add date to installer log file将日期添加到安装程序日志文件
【发布时间】:2019-04-05 20:04:04
【问题描述】:

我正在使用高级安装程序构建安装程序,但在尝试将日期添加到日志文件时遇到了问题。我使用 cmd 尝试了一个有效的命令,但是当我将它添加到 MSI 命令行时,所有日期值都显示为空白。以下是我为 MSI 传递的参数

/L*V "C:\Log_%date:~4,2%.%date:~7,2%.%date:~10,4%-%time:~0,2%.%time:~3,2%.%time:~6,2%.log"

我们正在尝试将日志设为 Log_04.05.2019-15.03.45.log 而不是 Log.log,因为在卸载时或在重试安装..

【问题讨论】:

  • 您在高级安装程序视图的哪个位置指定此命令行?你运行什么版本?
  • @SteinÅsmul 我假设他在构建页面中设置了它。如果您的项目输出设置为带有 MSI 的 EXE 包(在同一视图中可用的选项),则有一个额外的“MSI 命令行”字段可用。

标签: cmd installation windows-installer advanced-installer


【解决方案1】:

高级安装程序:抱歉,我明白我一定是误会了。您正在尝试从高级中设置日志文件名 安装程序。将快速浏览。您在工具中的何处指定此命令行?请注意setting the logging policy for "Global Logging" will ensure unique log file names 和每个 MSI 操作都记录在 TMP 中。


澄清:所以看起来你不想写日志,而是控制日志文件本身的文件名?


PowerShell:我发现批处理文件对于这样的东西很笨重。您可以通过 Powershell 调用安装吗?我并没有真正使用 PowerShell,但看到它可以使用 .NET,也许这个 C# 调用的简单转换就可以解决问题?

你想要类似:"Log_04.05.2019-15.03.45.log",所以你也许可以在 C# 中试试这个:

Console.WriteLine("Log_" + DateTime.Now.ToString("dd.MM.yyyy-HH.mm.ss") + ".log");

Here is a blog on using PowerShell with Windows Installer,请查看底部以了解此 PowerShell sn-p(同样,我不为此目的使用 PowerShell):

$DataStamp = get-date -Format yyyyMMddTHHmmss
$logFile = '{0}-{1}.log' -f $file.fullname,$DataStamp

$MSIArguments = @(
    "/i"
    ('"{0}"' -f $file.fullname)
    "/qn"
    "/norestart"
    "/L*v"
    $logFile
)
Start-Process "msiexec.exe" -ArgumentList $MSIArguments -Wait -NoNewWindow 

也许还可以阅读有关Windows Installer PowerShell Module(希思·斯图尔特)的文章,链接到此通用目的 回答: How can I use powershell to run through an installer?。 执行 Windows Installer 操作的专用 PowerShell 模块 不那么笨重。


一些链接

【讨论】:

  • 您好 Stein,感谢您的回答,我正在尝试在构建页面的高级安装程序中设置它,因为我正在让高级安装程序创建引导程序,因此不能选择 Powershell。跨度>
  • 如果你不能让它工作,我想你应该调查MsiLogging property。这应该为您每次运行提供一个唯一的日志文件 - 至少。这是an untested github.com sample。和more hits。我个人喜欢设置global logging policy(注册表项)。
  • 您好 Stein,看来我只能为我们已经拥有的 MsiLogging 属性设置静态路径。高级安装程序日期属性格式错误,操作系统不允许。不过感谢您的帮助
  • 您无需设置路径,而是指定所需的日志记录,并且日志文件显示在临时文件夹中。您甚至可以在安装完成后打开该日志文件,因为您可以通过 MsiLogFileLocation 属性检索其完整路径。
  • 我认为 Advanced Installer 具有启用复选框以在安装后打开日志的功能。我想你只是在对话框中启用它。已经有一段时间。您还可以添加自定义操作以将日志文件复制到由对话框按钮单击事件或类似事件触发的某处。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多