2016-11-14 121 views
0

我正在迁移Visual Studio 2010中的项目以使用更新的2015工具,但不知道如何解决这个问题。使用MSBuild 2015的AspNetMerge任务

期间通过的TeamCity上安装了Visual Studio 2015年新生成代理的生成,出现以下错误:

错误MSB4062:在“Microsoft.WebDeployment.Tasks.AspNetMerge”任务无法从中加载程序集C:\ Program Files(x86)\ MSBuild \ Microsoft \ WebDeployment \ v10.0 \ Microsoft.WebDeployment.Tasks.dll。无法加载文件或程序集'file:/// C:\ Program Files(x86)\ MSBuild \ Microsoft \ WebDeployment \ v10.0 \ Microsoft.WebDeployment.Tasks.dll'或其某个依赖项。该系统找不到指定的文件。确认声明是正确的,程序集及其所有依赖项都可用,并且任务包含一个实现Microsoft.Build.Framework.ITask的公共类。

有问题的组件在.proj文件中引用的建设作为一项任务:

<UsingTask TaskName="Microsoft.WebDeployment.Tasks.AspNetMerge" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.Tasks.dll"/> 

现在,鉴于这些路径的版本号是10.0版本我认为它仍然引用旧的工具。问题是在新的工具Microsoft.WebDeployment.Tasks.dll不再存在。

有人能告诉我什么是我需要在我的MSBuild proj中引用的新程序集,以便在新工具中执行aspnet_merge步骤?有没有更好的办法?

在此先感谢!

回答

0

我最终通过更改AspNetMerge任务中使用的程序集得到了这个工作。 .proj文件到:

<UsingTask TaskName="AspNetMerge" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.Tasks.dll"/> 

AspNetMerge任务现在是Microsoft.Web.Publishing.Tasks.dll的一部分。

0

Microsoft.WebDeployment.targets和Microsoft.WebDeployment.Tasks.dll包含在Web Deployment Projects package中。更多信息:您可以参考this文章。

对于Visual Studio 2015,您不需要创建Web部署项目,您可以创建发布配置文件并配置预编译。

  1. 右键点击你的Web项目=>发布
  2. 单击自定义创建一个新的发布配置
  3. 在设置部分,发布方式过程中检查预编译,然后单击配置来配置它

enter image description here enter image description here