我试图将我的应用部署到不同的环境然后我开始遵循以下方法: Deploying an ASP.NET Web Application to a Hosting Provider using Visual Studio or Visual Web Developer: Web.Config File Transformations - 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>
然后我安装了这个插件:
我解决了我的预览转换错误,但是当我尝试使用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()
在Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
在Microsoft.Build.BackEnd.TaskBuilder。&lt; ExecuteInstantiatedTask&gt; d__20.MoveNext()警告:装配装订日志已关闭 要启用程序集绑定失败日志记录,请将注册表值
[HKLM\Software\Microsoft\Fusion!EnableLog]
(DWORD)设置为1 注意:程序集绑定失败日志记录会导致性能损失 要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog]
。
我正在使用Visual Studio Pro 2012。
答案 0 :(得分:32)
我通过从控制面板修复“Microsoft ASP.NET和Web Tools 2013.1 - Visual Studio 2012”来修复此问题 - &gt;程序和功能。
路径C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web中缺少文件Microsoft.Web.XmlTransform.dll。
答案 1 :(得分:3)
我有类似的错误,虽然它是由不同的原因引起的。
我解决了从安装了VS2012的另一台PC复制以下DLL的问题: Microsoft.Web.XmlTransforms.dll
来自: C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web
我希望这会有所帮助
答案 2 :(得分: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。
答案 3 :(得分:1)
我试过以下两件事,但它对我没用。
1)将Microsoft.Web.XmlTransforms.dll DLL复制到位置C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web
2)修复“Microsoft ASP.NET和Web Tools 2013.1 - Visual Studio 2012”
然后我从控制台卸载了Microsoft Azure工具V2.6 - &gt;程序和功能。然后我就可以发布我的网站了。
答案 4 :(得分:0)
这可能已在Visual Studio 2012 Update 2(和Visual Studio 2013)中修复。
Web.config "Preview Transform" gives an error
...
Microsoft于2013年3月1日下午2:46发布
感谢您报告此问题!它将在Visual Studio 2012 Update 2中修复。请在可用时安装。