我使用WIX爲我的應用程序創建安裝程序。到目前爲止一切正常。但是,我試圖在安裝過程中創建一個新的事件源,並且無法按預期工作。WIX:使用.NET消息文件創建EventSource
我已閱讀並瞭解this question這裏,但我有一個不同的情況,其中給定的解決方案似乎不能正常工作。以下是以不同的方式完成的:
- 我使用
WixNetFxExtension
來確定.NET 3.5是否作爲啓動條件安裝。 - 我使用的
WixUtilExtension
,因爲它是描述here
我想做什麼配置工具和32位/ 64位的構建是:利用32位架構的事件消息文件在進行32位安裝時,請使用64位框架的事件消息文件。
一位在上面鏈接SO問題的意見,建議使用下列讓系統使用32位架構的事件消息文件:
<util:EventSource
Log="Application"
Name="*source name*"
EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll"/>
我修改這個考慮到這兩種類型設置的:
<?if $(var.Platform) = x64 ?>
<util:EventSource Log="..." Name="..." EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR64]EventLogMessages.dll" />
<?else ?>
<util:EventSource Log="..." Name="..." EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll" />
<?endif ?>
在文件的開頭,同樣<?if ...
條件的作用,改變產品 - 和foldernames相應。
代碼上面的某些行我用下面的允許.NET框架檢測:
<PropertyRef Id="NETFRAMEWORK35"/>
<PropertyRef Id="NETFRAMEWORK20"/>
<Condition Message="...">
<![CDATA[Installed OR NETFRAMEWORK35]]>
</Condition>
當我運行安裝程序,一切似乎工作,事件源創建,我也也可以從我的應用程序中使用它,但是,我仍然收到沒有找到事件消息文件的信息。檢查註冊表中我發現,路徑信息文件丟失:
EventMessageFile REG_EXPAND_SZ EventLogMessages.dll
我期望的路徑,32位/ 64位的框架存在,太多,但它似乎沒有前置。
我在這裏做錯了什麼?
太棒了!非常感謝。 – 2010-09-28 13:20:12