0

我正在使用配置轉換擴展來使用Windows服務應用程序的調試和發佈構建配置中的不同設置。這裏是我的版本:針對不同構建配置的log4net配置轉換

<root> 
    <level value="ALL" /> 
    <appender-ref ref="DebugAppender"/> 
    <appender-ref ref="SmtpAppender"/> 
</root> 

這裏是我的調試,在這裏我不想有SMTP附加目的地,但它不工作(記錄的事件仍然是由SMTP發送):

<root> 
    <level value="ALL" /> 
    <appender-ref ref="DebugAppender"/> 
    <appender-ref ref="SmtpAppender" xdt:Transform="Remove"/> 
</root> 
+0

我沒有解決發佈或發佈配置,我解決了調試配置,當你在VS中調試你的應用程序。我不想在調試時收到通知電子郵件,所以我必須有正確的轉換語句才能刪除SmtpAppender。 –

+0

當您單擊生成/重建時,配置文件會轉換 - 修改後的.config文件會自動複製到Bin \ Debug或Bin \ Release文件夾中。 我認爲你忽略了這個事實,即它是Windows服務,而不是Web應用程序,並且我修改了此服務,它可以像正常應用程序一樣進行調試。沒有使用第三方工具,配置文件轉換在任何其他項目類型中都是不可能的。我只需要知道如何使用轉換語句排除SmtpAppender。 –

+0

你是在聲明XDT命名空間嗎? – stuartd

回答

0

解決方案是比我想象的更簡單:

<root> 
    <level value="ALL" /> 
    <appender-ref ref="DebugAppender" /> 
    <appender-ref ref="SmtpAppender" xdt:Locator="Match(ref)" xdt:Transform="Remove"/> 
</root>