找不到导入的项目Microsoft.WebApplications.targets

sta*_*247 50 tfs visual-studio

在TFS服务器中配置持续集成时出现此错误,但已找到答案.也许这会有助于其他人:

The imported project "C:\Program Files (x86)\
   MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\
   Microsoft.WebApplications.targets" was not found.
Run Code Online (Sandbox Code Playgroud)

Jim*_*amb 56

你需要......

  1. 在构建计算机上安装Visual Studio,
  2. 手动将MSBuild\Visual Studio\v10.0\WebApplications文件夹的内容复制到构建计算机上的相同位置.

  • 对于所有未来绊脚石的人,请记住,有时项目配置了静态路径.在我的例子中,项目在`v12.0`中开发时配置了一个静态路径`v11.0`,所以我只需要复制`v11.0`路径中的小文件夹结构.吉姆好回答! (3认同)

小智 12

<!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />-->
Run Code Online (Sandbox Code Playgroud)

评论.CSproj中的以上行.看起来像微软的bug,它在从visual studio 2008到2010更新项目时不会删除或评论.

  • 谢谢你。在我的 .csproj 文件中,我有两行“Microsoft.WebApplication.targets”,一旦删除,构建就可以工作。(项目是一个 .net 4.5 MVC,我使用的是 `dotnet build` 命令,使用 VS 构建效果很好。) (2认同)

TPo*_*hel 7

在设置与Jenkins的持续集成时,我看到了同样的错误.我能够向MSBUILD添加一个命令行参数:/p:VisualStudioVersion=12.0因为我在构建服务器上安装了Visual Studio 2012.


Han*_*kCa 5

我经历过类似的事情。

Autobuild.targets作为构建的一部分,我已经在我们的文件运行中编写了它。它定义了MSWebApplicationTargets

<MSWebApplicationTargets>$(SolutionDirectory)\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3</MSWebApplicationTargets>
Run Code Online (Sandbox Code Playgroud)

然后在作为.csproj项目一部分并在构建中使用的文件中,它具有:

<Import
     Project="$(MSWebApplicationTargets)/tools/VSToolsPath/WebApplications/Microsoft.WebApplication.targets" />
Run Code Online (Sandbox Code Playgroud)

现在我们的问题是,当我们在 Visual Studio 中打开项目时,c:/tools/VSToolsPath/WebApplications/Microsoft.WebApplication.targets它说不存在(因为 VS 被认为MSWebApplicationTargets是未定义的,因此似乎默认为c:\)。您没有提供足够的信息,但也许这也是导致您出现问题的原因。

为了解决这个问题,我所要做的就是添加一个条件:

<Import 
    Project="$(MSWebApplicationTargets)/tools/VSToolsPath/WebApplications/Microsoft.WebApplication.targets" 
    Condition="'$(MSWebApplicationTargets)' != ''" />
Run Code Online (Sandbox Code Playgroud)

为什么这样做 Microsoft.WebApplication.targets

作为进一步讨论的一部分,我这样做了,Microsoft.WebApplication.targets所以我们不必依赖安装在构建服务器上的 Visual Studio。我将其添加为依赖项:

  • 在 Visual Studio 中右键单击项目并转到manage nuget packages. 这创建了一个packages.config列为MSBuild.Microsoft.VisualStudio.Web.targets依赖项的文件。
  • 然后我添加nuget.exe restore到构建脚本的开头,以便下载依赖项。