【问题标题】:wix SetProperty Before='AppSearch'wix SetProperty Before='AppSearch'
【发布时间】:2018-12-15 04:45:18
【问题描述】:

如何更改日期和时间格式?我需要及时将“:”替换为“_”。 在我的代码下面:

<SetProperty Before='AppSearch' Sequence='both' Id='HOSTNAME' Value="[ComputerName]_[Time]_[Date]">NOT HOSTNAME</SetProperty>

【问题讨论】:

    标签: wix windows-installer custom-action


    【解决方案1】:

    MSI SDK 很好地记录了这一点:Time Property:

    值的格式取决于用户的语言环境,并且是使用带有TIME_FORCE24HOURFORMAT | TIME_NOTIMEMARKER 选项的GetTimeFormat 函数获得的格式。

    所以用户的语言环境会影响格式,然后您可能需要使用自定义操作来获得您想要的格式。我想不出任何其他方法。

    有史以来最愚蠢的 VBScript:(很晚了)

    MsgBox Day(Now) & "_" & Month(Now) & "_" & Year(Now) & "_" & Hour(Now) & "_" & Minute(Now) & "_" & Second(Now)
    

    关于如何插入自定义操作的提示可以在这里找到:How to execute conditional custom action on install and modify only?


    【讨论】:

    • 在上面添加了一个关于如何在你的包中使用自定义操作的链接。还有see this answer for WiX sample links and how-to tips.
    • 喜欢这个? - &lt;Binary Id='datetime.vbs' SourceFile='datetime.vbs' /&gt;&lt;CustomAction Id='datetime.vbs' VBScriptCall='' BinaryKey='datetime.vbs' Execute='immediate' Return='ignore' /&gt;&lt;SetProperty Before='AppSearch' Sequence='both' Id='HOSTNAME' Value="datetime"&gt;NOT HOSTNAME&lt;/SetProperty&gt;
    • 目前无法对此进行测试,并且如果不知道您需要做什么就很难判断,但是您需要使用插入到 InstallExecuteSequence 和 @987654338 中的常规自定义操作元素@ 而不仅仅是一个 SetProperty 元素。 See here, bottom。如果它没有运行,那么脚本中有错误。 Check the MSI log。尝试创建一个不会出错的虚拟 VBScript:MsgBox "Hello!" 以查看您是否有“心跳”。
    • 如果您不需要自定义操作,则使用它们总是错误的。 Here is a description of why。如果您可以避免它们,请这样做。然而,有时它们是不可避免的。 VBScript custom actions are particularly frowned upon,但可以帮助避免对 .NET 框架的依赖以进行琐碎的操作(例如仅设置属性)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多