0

在我的应用程序中,我配置了 Trace 侦听器,如下所示

“HelloWorld”是我的AssemblyName命名空间

<system.diagnostics>
<sources>
  <source name="DebugCategory" switchName="DebugSwitch" switchType="System.Diagnostics.SourceSwitch">
    <listeners>
      <remove name="Default"/>
      <!-- Add the listeners below -->
      <add name="LogFile"/>
    </listeners>
  </source>
</sources>
<sharedListeners>
 <add name="Console" type="System.Diagnostics.ConsoleTraceListener" initializeData="true"/>
 <add name="LogFile" type="HelloWorld.Diagnostics.FileLogTraceListener, HelloWorld" initializeData="HelloWorld.log" traceOutputOptions="DateTime" cycle="Month"/>
</sharedListeners>

在使用 WIX 创建安装程序时,在我的 WIX 文件中,我会将 Target exe 文件从“HelloWorld.exe”变为“MyWorld.exe”,如下所示

  <Component Id="MyWorld.exe" Guid="*">
    <File Id="MyWorld.exe" Name="MyWorld.exe"
        DiskId="1" Source="HelloWorld.exe" />
    <Shortcut Id="HelloWorld.menu.exe" Name="Hello world application" Directory="McnMenu" Advertise="yes" WorkingDirectory="INSTAL32LLOCATION" />
  </Component>

由于EXE名称发生了变化,因此 Tracelistener 不会创建日志文件。

目标名称应该是“Myworld.exe”,如果我将文件元素还原为

     <File Id="HelloWorld.exe" Name="HelloWorld.exe" /> 

它运作良好

谁能帮我。

4

1 回答 1

1

在 .config 文件的这一行中:

<add name="LogFile" type="HelloWorld.Diagnostics.FileLogTraceListener, HelloWorld" initializeData="HelloWorld.log" traceOutputOptions="DateTime" cycle="Month"/>

你有type="HelloWorld.Diagnostics.FileLogTraceListener, HelloWorld". 那是对程序集中的类的引用。程序集名称(文件名)是逗号后面的部分。因此,您的 .config 文件需要将程序集(在您的情况下为可执行文件)命名为“HelloWorld”。

要修复,您可以保留文件名 HelloWorld.exe(如您所见)或更改 .config 文件,如下所示:

<add name="LogFile" type="HelloWorld.Diagnostics.FileLogTraceListener, MyWorld" initializeData="HelloWorld.log" traceOutputOptions="DateTime" cycle="Month"/>

注意逗号后面的MyWorldtype

于 2013-03-28T12:21:31.270 回答