2017-09-27 101 views
0

我有一個NLog.config,我必須指向不同的數據庫進行生產。 我正在使用this 工具來轉換它。 這是我的NLog.Config的一部分。轉換非web配置文件替換元素

<?xml version="1.0" encoding="utf-8"?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets> 
    <target name="ExceptionLog" type="Database"> 
    <connectionString> 
     ---- Db Connection string for test------- 
    </connectionString> 

我已經創建了生產轉換,但是無法轉換文件。

這裏是我有什麼

<?xml version="1.0"?> 
<!-- For more information on using app.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 --> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 

    <parameters value="Db connection for prod" 
      xdt:Transform="Replace" xdt:Locator="XPath(targets/target/connectionString)" /> 
</configuration> 

我們需要改變整個元素,而不是屬性。

回答

1

與成功添加「n日誌」 XDT命名空間別名:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" 
       xmlns:nlog="http://www.nlog-project.org/schemas/NLog.xsd"> 

    <nlog:connectionString xdt:Transform="Replace" 
     xdt:Locator="XPath(/nlog:nlog/nlog:targets/nlog:target/nlog:connectionString)"> 
    ....put-connection-string-here.... 
    </nlog:connectionString> 

</configuration> 
+0

還有另外一個目標「DebugLogs」像我這裏exceptionlogs,我怎麼更換第二個字符串? – SJMan

+1

使用屬性匹配指定目標:'XPath(/ nlog:nlog/nlog:targets/nlog:target [@ name ='ExceptionLog']/nlog:connectionString)',用'@ name = DebugLogs'添加另一個「替換」 。 – Gedrox