如何在 Web.config 中转换此元素?
How do I transform this element in my Web.config?
我已经在这里谷歌搜索了大约半天,但我仍然像刚开始时一样一无所知。
这是我的 Web.config
的相关部分
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
The following attributes can be set on the <httpRuntime> tag.
<system.Web>
<httpRuntime targetFramework="4.5.2"/>
</system.Web>
-->
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
<sectionGroup name="applicationSettings"
type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DasExternalFileTransfer.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false"/>
</configSections>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target name="logfile" xsi:type="File" fileName="" layout="${longdate} ${callsite} ${level} ${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile"/>
</rules>
</nlog>
我想替换 configuration/nlog/targets/target
下的 fileName
值。
我在 Web.Dev.config 中尝试了六种不同的东西。最新的是
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<target xdt:Transform="Replace" xdt:Locator="XPath(/configuration/nlog/targets)" />
<target xdt:Transform="Replace" fileName="\newlocation.ad\location1" />
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
到目前为止,当我在 Visual Studio 中预览我的转换时,我没有看到任何效果。
我怀疑我没有以进程可以找到它的方式定义元素,但我不确定。
有人可以帮我弄清楚如何正确定义元素,以便我可以用新值替换该值吗?还是我只是采取了错误的方法?
好的,我想我已经想通了
看来是命名空间让我误会了。
我修改了 Web.config
的这一部分
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target name="logfile" xsi:type="File" fileName="" layout="${longdate} ${callsite} ${level} ${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile"/>
</rules>
</nlog>
注意,我删除了 xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
。
然后我将我的 Web.Dev.config 修改为
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target xdt:Transform="SetAttributes(fileName)" xdt:Locator="Match(name)" name="logfile" fileName="\newlocation.ad\location1" />
</targets>
</nlog>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
然后,当我预览转换时,我看到了结果 <target name="logfile" xsi:type="File" fileName="\newlocation.ad\location1" layout="${longdate} ${callsite} ${level} ${message}"/>
。
我现在只希望删除命名空间不会对 NLog 产生不利影响,但我会进行测试以确定这一点。
看来是命名空间让我误会了。
我修改了我的 Web.config
的这一部分
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target name="logfile" xsi:type="File" fileName="" layout="${longdate} ${callsite} ${level} ${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile"/>
</rules>
</nlog>
注意,我删除了 xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
。
然后我将我的 Web.Dev.config 修改为
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target xdt:Transform="SetAttributes(fileName)" xdt:Locator="Match(name)" name="logfile" fileName="\newlocation.ad\location1" />
</targets>
</nlog>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
然后,当我预览转换时,我看到了结果 <target name="logfile" xsi:type="File" fileName="\newlocation.ad\location1" layout="${longdate} ${callsite} ${level} ${message}"/>
。
我现在只希望删除命名空间不会对 NLog 产生不利影响,但我会进行测试以确定这一点。
我已经在这里谷歌搜索了大约半天,但我仍然像刚开始时一样一无所知。
这是我的 Web.config
的相关部分<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
The following attributes can be set on the <httpRuntime> tag.
<system.Web>
<httpRuntime targetFramework="4.5.2"/>
</system.Web>
-->
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
<sectionGroup name="applicationSettings"
type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DasExternalFileTransfer.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false"/>
</configSections>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target name="logfile" xsi:type="File" fileName="" layout="${longdate} ${callsite} ${level} ${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile"/>
</rules>
</nlog>
我想替换 configuration/nlog/targets/target
下的 fileName
值。
我在 Web.Dev.config 中尝试了六种不同的东西。最新的是
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<target xdt:Transform="Replace" xdt:Locator="XPath(/configuration/nlog/targets)" />
<target xdt:Transform="Replace" fileName="\newlocation.ad\location1" />
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
到目前为止,当我在 Visual Studio 中预览我的转换时,我没有看到任何效果。
我怀疑我没有以进程可以找到它的方式定义元素,但我不确定。
有人可以帮我弄清楚如何正确定义元素,以便我可以用新值替换该值吗?还是我只是采取了错误的方法?
好的,我想我已经想通了
看来是命名空间让我误会了。
我修改了 Web.config
的这一部分<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target name="logfile" xsi:type="File" fileName="" layout="${longdate} ${callsite} ${level} ${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile"/>
</rules>
</nlog>
注意,我删除了 xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
。
然后我将我的 Web.Dev.config 修改为
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target xdt:Transform="SetAttributes(fileName)" xdt:Locator="Match(name)" name="logfile" fileName="\newlocation.ad\location1" />
</targets>
</nlog>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
然后,当我预览转换时,我看到了结果 <target name="logfile" xsi:type="File" fileName="\newlocation.ad\location1" layout="${longdate} ${callsite} ${level} ${message}"/>
。
我现在只希望删除命名空间不会对 NLog 产生不利影响,但我会进行测试以确定这一点。
看来是命名空间让我误会了。
我修改了我的 Web.config
的这一部分<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target name="logfile" xsi:type="File" fileName="" layout="${longdate} ${callsite} ${level} ${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile"/>
</rules>
</nlog>
注意,我删除了 xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
。
然后我将我的 Web.Dev.config 修改为
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
<targets>
<target xdt:Transform="SetAttributes(fileName)" xdt:Locator="Match(name)" name="logfile" fileName="\newlocation.ad\location1" />
</targets>
</nlog>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
然后,当我预览转换时,我看到了结果 <target name="logfile" xsi:type="File" fileName="\newlocation.ad\location1" layout="${longdate} ${callsite} ${level} ${message}"/>
。
我现在只希望删除命名空间不会对 NLog 产生不利影响,但我会进行测试以确定这一点。