Microsoft.WebApplication.targets导入在VS 2010 Web应用程序项目中的作用是什么?

时间:2010-04-28 00:41:55

标签: .net web-applications visual-studio-2010 import

Visual Studio 2010似乎坚持在Web应用程序项目中进行此导入

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

这个导入给了我们什么,是否真的需要?

如果您使用文本编辑器删除此导入,Visual Studio将重新添加它。

我问的原因是项目是在构建服务器上编译的,目标也不存在,因为没有安装visual studio。

4 个答案:

答案 0 :(得分:11)

正如对Raj Kaimal回答的评论中所建议的那样,为了使其正常工作,您可以将文件夹复制到构建机器上的相同位置。

如果需要,您也可以将该文件夹放在机器的其他位置,甚至与项目相关。您只需要向csproj添加一些内容以重定向MSBuildExtensionsPath ..

例如,我的csproj中有以下内容(适用于VS2010和VS2012):

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<PropertyGroup>
    <MSBuildExtensionsPath32>..\lib\MSBuild.MSVS\</MSBuildExtensionsPath32>
</PropertyGroup>  
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"/>

然后,在我的lib文件夹(这是包含csproj的文件夹的兄弟)中,我复制了以下目录:

  1. %ProgramFiles%\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications→ MSBuild.MSVS \微软\ VisualStudio的\ V10.0 \ web应用
  2. %ProgramFiles%\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web→MSBuild.MSVS \ Microsoft \ VisualStudio \ v10.0 \ Web

答案 1 :(得分:4)

包含MSBuild的条目 C:\ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications

使用VS 2010中的发布选项创建可在服务器上部署的zip包(MS Deploy)

请阅读:http://vishaljoshi.blogspot.com/2009/03/how-does-web-deployment-with-vs-10.html

您使用的构建服务器是什么?

答案 2 :(得分:3)

我们的CI构建服务器也存在一些网站。它没有安装Visual Studio版本,因此MSBuildExtensions的链接在升级到vs2010 / .net4.0时打破了我们的构建。

如果它不是开发机器,那么必须在构建机器上安装VS2010似乎太过分了......我可以在构建服务器上安装MSBuild扩展包(http://msbuildextensionpack.codeplex.com/)并使其正常工作好吗?我目前无法验证这是否有效,但从本文之前我能够完成的内容来看,它似乎比安装VS2010更好。

-Daniel

答案 3 :(得分:0)

如果不从构建服务器进行部署,则可以关闭构建服务器上的Microsoft.WebApplication.targets。请在此处查看我的回答:https://stackoverflow.com/a/35781566/4955344