如何仅在发布模式下在web.config中设置属性?

时间:2013-09-03 05:42:31

标签: c# asp.net-mvc web-config

我只想在发布模式下设置此属性:

<system.web>
    <httpCookies domain=".mySite.com" />
  </system.web>

这是我的 Web.Release.Config

<system.web>
<httpCookies name="someName" domain=".mySite.com"  xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
</system.web>

这是我的 Web.Config

<system.web>
        <httpCookies name="someName"/>
      </system.web>

httpCookies 属性没有名称属性!并获得此属性无效的错误。

2 个答案:

答案 0 :(得分:8)

这应该有效 - 将其添加到Web.Release.config文件中:

<system.web>
    <httpCookies domain=".mySite.com" xdt:Transform="Replace" />
</system.web>

您不需要name属性(它不存在)

这将是转换后的web.config中的结果:

<system.web>
    <httpCookies domain=".mySite.com" />
</system.web>

请注意,您的Web.config文件中必须存在httpCookies元素才能使转换生效。

答案 1 :(得分:0)

如果您只想更改一个属性而不替换整个节点,请在Web.Release.config中执行此操作。

  <system.web>
...
    <httpCookies xdt:Transform="SetAttributes(domain)" domain=".mySite.com" />

这将保留其余httpCookies个属性,而仅更改domain。确保新的domain=出现在xdt:Transform之后,否则将不起作用。