如何将设置构建日期写入属性

Han*_*nes 0 wix

更新2:功能的要求被拒绝,仅仅是因为维克斯不能支持这些“假”变量提供cmd.exe的。因此,下面公认的答案仍然是最佳解决方案。

更新:我已发出功能请求,以添加预处理器动态环境变量支持。一旦开发人员做出响应,我将更新此线程。


原始问题:

我想写出安装程序已建立到属性的日期。

<Property Name="BuildDate" Value="$(env.Date)" />
Run Code Online (Sandbox Code Playgroud)

要么

<Property Name="BuildDate" Value="$(sys.Date)" />
Run Code Online (Sandbox Code Playgroud)

抛出CNDL0150:“未定义的预处理程序变量”,而

<Property Name="BuildDate" Value="[Date]" />
Run Code Online (Sandbox Code Playgroud)

当然会将字符串“ [Date]”写入MSI属性。

我该如何实现?

编辑:在所有情况下,我都尝试过“日期”,结果相同。另外,添加一个新的环境变量“ BuildDate”并将其设置为“%DATE%”会消除编译错误,但是写入MSI的值不能解析为实际日期,而是生成字符串“%DATE%” ”。

Ili*_*irB 6

例如,您可以在第一个属性组的wix项目(.wixproj)中添加属性(您可以根据自己的喜好格式化日期和/或时间):

<Date>$([System.DateTime]::Now.ToString("yyyyMMddhhmm"))</Date>
Run Code Online (Sandbox Code Playgroud)

然后在配置属性组中将此属性添加到中<DefineConstants>,如果您有更多的常量,请使用分号将它们分开;

<DefineConstants>Date=$(Date)</DefineConstants>
Run Code Online (Sandbox Code Playgroud)

最后添加MSI属性:

<Property Id="BuildDate" Value="$(var.Date)" />
Run Code Online (Sandbox Code Playgroud)