在针对不同环境执行web.config转换时出错

ddi*_*ppa 11 web-config-transform visual-studio-2012

我试图将我的应用程序部署到不同的环境然后我开始遵循以下方法: 使用Visual Studio或Visual Web Developer将ASP.NET Web应用程序部署到托管提供程序:Web.Config文件转换 - 3 of 12

在我点击预览变换之前是完美的,我收到了这个错误:

Microsoft Visual Studio

无法加载文件或程序集"Microsoft.Web.XmlTransform,Version = 1.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其依赖项之一.该系统找不到指定的文件.

(我只创建了一个转换Web.DebugQA.config,当然还有默认的转换,调试和发布)

我的Web.DebugQA.config看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="MyDB" 
      connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
  <system.web>
  </system.web>
  <appSettings>
    <add key="EnvironmentName" value="QADev" xdt:Transform="SetAttributes(value)"
      xdt:Locator="Match(key)" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但后来我安装了这个插件:

SlowCheetah - XML转换

我解决了我的预览转换错误,但是当我尝试使用QADev转换发布时,我遇到了这个错误:

"ImportParametersFile"任务意外失败.

System.IO.FileNotFoundException:无法加载文件或程序集"Microsoft.Web.XmlTransform,Version = 1.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其依赖项之一.该系统找不到指定的文件.文件名:'Microsoft.Web.XmlTransform,Version = 1.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'
,Microsoft.Web.Publishing.Tasks.ImportParametersFile.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build .BackEnd.ITaskExecutionHost.Execute()
在Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask> d__20.MoveNext()

警告:装配绑定日志记录已关闭.
要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1.
注意:程序集绑定失败日志记录会导致一些性能损失.
要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog].

我正在使用Visual Studio Pro 2012.

Col*_*ury 32

我通过从控制面板 - >程序和功能修复"Microsoft ASP.NET和Web Tools 2013.1 - Visual Studio 2012"来修复此问题.

路径C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v11.0\Web中缺少文件Microsoft.Web.XmlTransform.dll.


Ada*_*dam 1

我在 VS2012 中遇到了同样的问题,无法为 PublishPackage 转换“预览转换”,例如 Web.Staging.config 抱怨 Microsoft.Web.XmlTransform

我通过将包https://nuget.org/packages/Microsoft.Web.Xdt添加到我的 Mvc 4.5 项目来使其正常工作。该软件包仍处于预发布状态。

PM> Install-Package Microsoft.Web.Xdt -Pre
Run Code Online (Sandbox Code Playgroud)

该软件包包含 Microsoft.Web.XmlTransform.dll

我在构建过程中仍然收到错误,抱怨“无法加载文件或程序集 Microsoft.Web.XmlTransform”。Mvc 项目仍然构建正常。

我确实尝试使用 gacutil 将 Microsoft.Web.XmlTransform.dll 添加到 Gac,但这并没有解决问题。

但是,我使用 Team Foundation Service 构建服务器,它可以正常工作,并在应用 Web.Release.config 和 Web.Staging.config 后创建正确的 Web.config。