相关疑难解决方法(0)

如何使用WiX创建事件日志源

我正在为使用自定义事件日志源的网站创建安装程序.我希望我们的基于WiX的安装程序在安装期间创建该事件日志源.

有没有人知道使用WiX框架执行此操作的最佳方法.

wix eventlog-source event-log

58
推荐指数
3
解决办法
2万
查看次数

WIX:使用.NET消息文件创建EventSource

我正在使用WIX为我的应用程序创建一个安装程序.到目前为止一切正常.但是,我正在尝试在安装期间创建一个新的事件源,但这不会按预期工作.

我已经在这里阅读并理解了这个问题,但我有一个不同的情况,其中给定的解决方案似乎不能正常工作.以下是不同的做法:

  1. 我正在使用它WixNetFxExtension来确定.NET 3.5是否作为启动条件安装.
  2. 我使用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位框架的路径也存在,但它似乎并没有被假定.

我在这做错了什么?

wix eventlog-source event-log wix3.5

4
推荐指数
1
解决办法
3182
查看次数

标签 统计

event-log ×2

eventlog-source ×2

wix ×2

wix3.5 ×1