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 ファイルでは、以下のように「HelloWorld.exe」から「MyWorld.exe」へのターゲット 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 はログ ファイルを作成していません。

File要素を元に戻すと、ターゲット名は「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"/>

カンマMyWorldの後の に注意してください。type

于 2013-03-28T12:21:31.270 に答える