microsoft.identityModel上的Web配置转换 - 未声明'http://schemas.microsoft.com/XML-Document-Transform'属性

Pau*_*and 17 web-config transform web-config-transform

我有一个成功转换连接字符串的Web.Release.config.

当我添加一个microsoft.identityModel部分时,我得到一个警告说

未声明"http://schemas.microsoft.com/XML-Document-Transform"属性

并且变换在该部分不起作用.

为了让转换工作,我错过了什么?

在这里完成Web.Release.config

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <connectionStrings>    

    <add name="MYNAME"
         connectionString="metadata=res://*/Models.MYCOMPANY-Sales-Demo.csdl|res://*/Models.MYCOMPANY-Sales-Demo.ssdl|res://*/Models.MYCOMPANY-Sales-Demo.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=MYCOMPANYDemo;UID=MYCOMPANYDBUser;Password=********;multipleactiveresultsets=True;App=EntityFramework&quot;"         
         xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
  </connectionStrings>

  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>


  <microsoft.identityModel> 
    <service>
      <audienceUris>
        <add value="http://MYCOMPANY-sales-demo.cloudapp.net/" xdt:Transform="Replace"/>
      </audienceUris>
      <federatedAuthentication>
        <wsFederation realm="http://MYCOMPANY-sales-demo.cloudapp.net/" xdt:Transform="SetAttributes(realm)" />
      </federatedAuthentication>       
    </service>
  </microsoft.identityModel>

</configuration>
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 5

我也遇到过这个问题,但已经开始工作了.我做的是"RemoveAll"和"Insert"而不是替换/匹配:

<audienceUris>
    <add xdt:Transform="RemoveAll" />
    <add value="http://example.com/" xdt:Transform="Insert" />
</audienceUris>
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到所需的转换和输出配置文件.


Rob*_* VS 5

这似乎与Visual Studio 2012(v4.5.50709)一起使用.我仍然在编辑器中得到'属性未声明'警告,但xdt:Transform ="Replace"指令对我有效.

  • 这似乎与VS2015中的行为相同. (6认同)