如何检查参数是否是有效的 GUID?

How to check if argument is valid GUID?

在我的 Wix XML 中,我有一个参数

<Property Id="PRODUCT_ID" Value='NA'/>

<Condition> 也支持它必须通过(即不能 "NA"):

<Condition Message='Product ID is required.'>
      (not PRODUCT_ID = "NA")
</Condition>

但是,我还需要确保给定参数 (PRODUCT_ID) 是有效的 GUID?我可以在自定义 DLL 中编写一个函数,并且 return 函数失败(以及 DLL 函数的消息框)。但是,我在哪里调用该函数?

我相信,它会在 <InstallExecuteSequence> 下,但是在哪里?

<InstallExecuteSequence>
    <Custom Action="validateGUI" Before="???"  ???/>
</InstallExecuteSequence>

编写一个 CA,它将检查 PRODUCT_ID 的有效性并将值分配给另一个 属性,例如PRODUCT_ID_好的。然后在条件中使用PRODUCT_ID_OK。

条件在 LaunchConditions 期间进行评估,因此您需要在此之前 运行 CA:Before="LaunchConditions"