无法从Microsoft.Web.Publishing.Tasks.dll加载TransformXml任务
有没有人看到这个错误,并知道如何解决它?
无法从程序集C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll中加载“TransformXml”任务。
无法加载文件或程序集“file:/// C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll”或其某个依赖项。 该系统找不到指定的文件。
确认声明是否正确,程序集及其所有依赖项都可用,并且该任务包含一个实现Microsoft.Build.Framework.ITask的公共类。
我在其他地方读到这个问题是当你没有安装SQL Server的时候。 但是我确实已经安装了SP1的SQL Express 2012 x64。 我也运行VS 2013专业版。
我在VS 2012中运行了完全相同的解决scheme,没有任何问题。
为了让我的工作,我刚刚复制我的v11.0
文件夹,并重新命名为v11.0
,似乎v11.0
起工作良好。 这是现在的快速解决scheme。
因为这可能不是最好的解决scheme,虽然它的工作原理,但我打算尝试安装Windows 7的Microsoft Windows SDK和.NET Framework 4 Windows SDK for Windows 7和.NET Framework 4,但这需要很长时间下载。
只要你使用Visual Studio 2012,Dai Bok和emalamisura提供的答案就可以正常工作。对于VS 2013,这也是失败的。 为了使这个工作与所有版本的Visual Studio,你应该:
- 打开未加载项目的项目文件(.csproj)
- search
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
- 将其更改为
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets" />
- 重新加载项目
这将dynamic正确地设置正确版本的Visual Studio。
我已经在我们的构build服务器上解决了这个问题好几天了,所以我想我会logging下来的解决scheme。 首先,我的构build服务器安装了Web发布扩展 。 我可以使用TransformXml任务来处理Web应用程序项目中心脏的内容。
为了在Web应用程序项目之外使用它,我尝试将UsingTask元素添加到我的项目中,并使用ms build属性(如Benjamin所示)将其指向正确的位置。 然而,他们不在我的构build服务器(那些可以轻松访问他们的构build服务器的文件系统可能会跳过这一点,只需安装相关的包到Visual Studio)。 我甚至去硬编码视觉工作室的版本,但它总是把我的错误。
我终于放弃了,从我的本地PC拉动DLL:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.XmlTransform.dll
我将它们上传到源代码控制,并将该文件夹添加到我的构build工作区(编辑构build定义 – >源设置 – >源代码pipe理文件夹)。 从那里,我甚至不需要引用文件夹 – 这是我的UsingTask看起来像:
<UsingTask TaskName="TransformXml" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll" />
现在我可以使用TransformXml任务来从任何项目的心脏的内容。
因为我的VisualStudio文件夹中只有v12.0,v14.0和v15.0,所以编辑我的项目文件并将参考path从v10.0更改为v14.0。 然后项目build立成功。
之前:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
后:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
正确的答案是卸载正在讨论的项目,然后编辑csproj文件,查找引用10.0path的条目,并将其更改为指向11.0。
要解决这个问题,
- 在您的计算机中findVisual Studio安装程序
- 点击或点击以启动安装程序,然后select修改。
- 在个人组件屏幕上,selectAsp.net和Web开发工具,然后select修改/安装。
这解决了这个问题,因为它创build了上述path中的dll。