2016-12-23 20 views
0

thisサイトを使用して、NuGetで使用する前にXDT変換をテストしています。私は、この設定を持っているXDT変換で間違ったエントリが削除されます

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
    <httpModules> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
    </httpModules> 
    </system.web> 
</configuration> 

そして、この変換を使用します。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
    <httpModules> 
     <add name="ErrorLog" xdt:Transform="Remove" />  
    </httpModules> 
    </system.web> 
</configuration> 

結果は、この出力されます。

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
    <httpModules> 

     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
    </httpModules> 
    </system.web> 
</configuration> 

私はエントリーApplicationInsightsWebTrackingが削除された理由を理解しないとエラーログはありません。この変換をNuGetパッケージ(パッケージを削除するとき)で使用しても同じ結果が得られます。作業中の変換をどのように変更するのですか?

答えて

1

あなたがそうでない唯一の要素の場所/パスは(最初のadd要素が最初に取り出さしまった理由です)マッチングのために考慮される、明示的にxdt:Locator="Match()"を使用することにより、同様name属性で一致しXDTを指示する必要があります:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
    <httpModules> 
     <add name="ErrorLog" xdt:Locator="Match(name)" xdt:Transform="Remove" />  
    </httpModules> 
    </system.web> 
</configuration> 
関連する問題