我正在为使用自定义事件日志源的网站创建安装程序.我希望我们的基于WiX的安装程序在安装期间创建该事件日志源.
有没有人知道使用WiX框架执行此操作的最佳方法.
我正在使用WIX为我的应用程序创建一个安装程序.到目前为止一切正常.但是,我正在尝试在安装期间创建一个新的事件源,但这不会按预期工作.
我已经在这里阅读并理解了这个问题,但我有一个不同的情况,其中给定的解决方案似乎不能正常工作.以下是不同的做法:
WixNetFxExtension来确定.NET 3.5是否作为启动条件安装.WixUtilExtension到,因为它描述了用于32位/ 64位构建配置的东西在这里我想做的是:在进行32位安装时使用32位框架的事件消息文件,否则使用64位框架的事件消息文件.
上面链接的SO问题中的一条评论建议使用以下内容让系统使用32位框架的事件消息文件:
<util:EventSource
Log="Application"
Name="*source name*"
EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll"/>
Run Code Online (Sandbox Code Playgroud)
我修改了这个来解释这两种类型的设置:
<?if $(var.Platform) = x64 ?>
<util:EventSource Log="..." Name="..." EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR64]EventLogMessages.dll" />
<?else ?>
<util:EventSource Log="..." Name="..." EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll" />
<?endif ?>
Run Code Online (Sandbox Code Playgroud)
在文件的开头,相同的<?if ...条件工作,相应地改变产品和foldernames.
代码上面的一些代码我正在使用以下代码来允许.NET Framework检测:
<PropertyRef Id="NETFRAMEWORK35"/>
<PropertyRef Id="NETFRAMEWORK20"/>
<Condition Message="...">
<![CDATA[Installed OR NETFRAMEWORK35]]>
</Condition>
Run Code Online (Sandbox Code Playgroud)
当我运行安装程序时,一切似乎都有效,也创建了事件源,我也可以从我的应用程序中使用它,但是,我仍然得到未找到事件消息文件的信息.检查注册表我发现消息文件的路径丢失了:
EventMessageFile REG_EXPAND_SZ EventLogMessages.dll
Run Code Online (Sandbox Code Playgroud)
我期望32位/ 64位框架的路径也存在,但它似乎并没有被假定.
我在这做错了什么?