0

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

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

错误 MSB4062:无法从程序集 C:\Program Files (x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.Tasks.dll 加载“Microsoft.WebDeployment.Tasks.AspNetMerge”任务。无法加载文件或程序集 '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"/>

现在考虑到这些路径中的版本号是 v10.0,我认为它仍然引用了一个旧工具。问题是在新工具中 Microsoft.WebDeployment.Tasks.dll 不再存在。

谁能告诉我为了在新工具中执行 aspnet_merge 步骤,我需要在我的 MSBuild 项目中引用什么新程序集?有没有更好的办法?

提前致谢!

4

2 回答 2

1

我最终通过将 AspNetMerge 任务在 .proj 文件中使用的程序集更改为:

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

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

于 2016-11-17T10:10:08.323 回答
0

Microsoft.WebDeployment.targets 和 Microsoft.WebDeployment.Tasks.dll 包含在Web 部署项目包中。更多信息:您可以参考这篇文章。

对于 Visual Studio 2015,您无需创建 Web 部署项目,您可以创建发布配置文件并配置 Precompile。

  1. 右键单击您的网络项目=>发布
  2. 单击自定义以创建新的发布配置文件
  3. 在设置部分,检查发布期间预编译选项,然后单击配置进行配置

在此处输入图像描述 在此处输入图像描述

于 2016-11-15T04:57:02.453 回答