Wix事件日志未创建
问题描述:
我试图在安装时使用Wix创建事件日志和事件源。安装不会失败或给出任何错误...但我没有看到任何名为MyApp的事件日志被创建。Wix事件日志未创建
<PropertyRef Id="NETFRAMEWORK40FULLINSTALLROOTDIR"/>
<Component Id="EventLog" Guid="AD09F8B9-80A0-46E6-9E36-9618E2023D67">
<util:EventSource Log="MyApp" Name="MyApp" EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR]EventLogMessages.dll" />
</Component>
我以前有一个.NET安装程序类,这样做,它没有问题。
我在做什么错?
答
您可以发布安装程序日志吗? EventSource元素实际上只是一些合成糖。 WiX将这些转换为简单的注册表项/值,我从来没有见过它在我使用过的任何安装中失败。
答
我遇到了问题,这是因为我错过了<CreateFolder />
元素;我的代码最终看上去像这样:
<Component Id="CreateEventLog32Bit" Guid="{some-guid}" Permanent="yes">
<Condition><![CDATA[NETFRAMEWORK40FULLINSTALLROOTDIR AND NOT VersionNT64]]></Condition>
<CreateFolder />
<util:EventSource Log="Application" Name="MyApp" EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR]EventLogMessages.dll" />
</Component>
<Component Id="CreateEventLog64Bit" Guid="{some-other-guid}" Permanent="yes">
<Condition><![CDATA[NETFRAMEWORK40FULLINSTALLROOTDIR64 AND VersionNT64]]></Condition>
<CreateFolder />
<util:EventSource Log="Application" Name="MyApp" EventMessageFile="[NETFRAMEWORK40FULLINSTALLROOTDIR64]EventLogMessages.dll" />
</Component>
(所以它可以处理的.NET 4的32位和64位安装)
我认为你有问题。这将适用于32位操作系统 - 而不是64位操作系统。我认为你应该使用64位的NETFRAMEWORK40FULLINSTALLROOTDIR64。你不觉得吗? –