我想根據某些值在安裝中包含不同的dll。所以,我試圖根據使用自定義操作設置的屬性加載組件。WiX無法檢查使用CustomAction設置的屬性
在WXS文件:
[CustomAction]
public static ActionResult GetPropVersion(Session session)
{
session["PropDllVersion"] = "19";
}
我可以在這個屬性更改爲19 MSI日誌文件中看到,但是xyz.dll:
...
<Property Id="PropDllVersion" Value="0" />
...
<CustomAction Id="CheckPropDllVersion" BinaryKey="CustomAction1.dll" DllEntry="GetPropVersion" Return="ignore" Execute="immediate"/>
...
<InstallExecuteSequence>
<Custom Action="CheckPropDllVersion" After="ValidateProductID" />
</InstallExecuteSequence>
...
<Component Id="Test"
Guid="B81F832D-2D96-4169-9BD0-8D77098FEC60">
<Condition><![CDATA[PropDllVersion = "19"]]></Condition>
<File Id="File15"
Name="xyz.dll"
Vital="yes"
KeyPath="yes"
AssemblyManifest="File5"
AssemblyApplication="File5"
Assembly=".net"
DiskId="1"
/>
</Component>
...
在定製操作文件
然後未包含在安裝中。它看起來像PropDllVersion沒有設置在條件水平,或者我做錯了什麼...我試圖排序它在許多其他地方仍然不工作...
如果我使用全局屬性條件,而不是我的財產,它的作品!
不知道爲什麼我對這個問題得到了負面的評價。並不是說我沒有嘗試過這裏介紹的所有其他解決方案。將欣賞的負面評價到這個問題的原因... – Samuel 2012-04-28 12:48:29