11

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

在我点击Preview Transform之前是完美的,我收到了这个错误:

微软视觉工作室

无法加载文件或程序集“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>

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

SlowCheetah - XML 转换

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

“ImportParametersFile”任务意外失败。

System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.Web.XmlTransform,Version=1.2.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。
文件名: Microsoft.Web.Publishing.Tasks.ImportParametersFile.Execute()
中 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build中的“Microsoft.Web.XmlTransform, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” .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。

4

5 回答 5

32

我通过从“控制面板”->“程序和功能”修复“Microsoft ASP.NET 和 Web 工具 2013.1 - Visual Studio 2012”来解决此问题。

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

于 2014-05-22T07:44:59.603 回答
3

我有一个类似的错误,虽然它是由不同的原因引起的。

我解决了它从另一台安装了 VS2012 的 PC 复制以下 DLL: Microsoft.Web.XmlTransforms.dll

来自: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web

我希望这有帮助

于 2014-05-08T14:12:57.577 回答
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

此包包含 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。

于 2013-02-15T04:46:46.433 回答
1

我尝试了以下两件事,但它对我不起作用。

1) 将 Microsoft.Web.XmlTransforms.dll DLL 复制到位置 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web

2) 并修复“Microsoft ASP.NET and Web Tools 2013.1 - Visual Studio 2012”

然后我从 control panel -> Programs and Features 卸载了 Microsoft Azure tool V2.6。然后我就可以发布我的网站了。

于 2015-11-26T10:46:48.993 回答
0

这可能已在 Visual Studio 2012 Update 2(和 Visual Studio 2013)中得到修复。

Web.config“预览转换”给出错误

...

Microsoft 于 2013 年 3 月 1 日下午 2:46 发布

感谢您报告问题!它将在 Visual Studio 2012 Update 2 中修复。请在可用时安装它。

于 2014-07-10T16:42:16.377 回答