Visual Studio Team Services 版本 XML 转换不起作用

Visual Studio Team Services release XML transformation doesn't work

Visual Studio 团队服务 - 构建和发布

在发布定义中,在文件转换和变量替换选项下,有 XML 转换和 XML 变量替换。

我选中了两个复选框,但在部署之后,我的 Web.Dev.config 中没有任何内容会替换 web.config。转变根本没有发生。

有什么问题?

--------编辑:详细信息--------

建设

这里所有的设置都是默认的。

发布

web.dev.config

如果我从 visual studio 2015 年部署,此转换工作正常。

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Server=tcp:xxxx.database.windows.net,1433;Database=xxxx;User ID=xxx@xxx;Password=xxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"  providerName="System.Data.SqlClient" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    <add name="NicoContext" connectionString="metadata=res://*/Nico.csdl|res://*/Nico.ssdl|res://*/Nico.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=tcp:xxxx.database.windows.net,1433;initial catalog=xxxx;User Id=xxxx@xxxx;Password=xxxx;App=EntityFramework&quot;" providerName="System.Data.EntityClient" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>
  <appSettings>
    <add key="Environment" value="Dev" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    <add key="AzureStorageContainerName" value="xxx" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
    <add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=xxx;EndpointSuffix=core.windows.net"  xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
    <add key="FacebookLoginAppId" value="xxx"   xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    <add key="FacebookLoginAppSecret" value="xxx"   xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
  </appSettings>
</configuration>

--------编辑 2:不再有效--------

我按照在另一个 Azure 帐户中的新项目上建议的解决方案进行了操作,但是这次没有用。对于构建,我选择模板"Asp.net (preview)",对于发布,我选择模板"Azure App Service Deployment"。

--------编辑 3:发布 - 包或文件夹--------

您已经deployed/published web应用,所以web.config已经转换(对于web包部署,web.config中的相关值将在web部署时更新,值在 parameters.xml).

因此,已发布的文件夹中没有其他配置文件(例如 web.dev.config、web.release.config)并检查 XML 转换XML变量替换没用。

根据构建日志,Web 应用程序使用 release 配置构建,但没有 web.release.config,所以 web.config.

没有更新

您可以参考以下步骤来达到您的要求:

  1. Publish/deploy 使用 文件系统 方式的网络应用程序(例如 /p:WebPublishMethod=FileSystem /p:publishUrl= $(build.artifactstagingdirectory)\)
  2. 添加复制文件步骤将其他配置文件(web.dev.config、web.prod.config 等)复制到已发布的文件夹(工件目录)
  3. 添加发布构建工件
  4. 对于发布,取消选中 使用 Web 部署发布 选项并指定 $(System.DefaultWorkingDirectory) 到 包或文件夹