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

Sim*_*mon 17 .net import web-applications visual-studio-2010

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

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

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

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

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

Fra*_*man 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"/>
Run Code Online (Sandbox Code Playgroud)

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

  1. %ProgramFiles%\ MSBuild\Microsoft\VisualStudio\v10.0\WebApplications→MSBuild.MSVS\Microsoft\VisualStudio\v10.0\WebApplications
  2. %ProgramFiles%\ MSBuild\Microsoft\VisualStudio\v10.0\Web→MSBuild.MSVS\Microsoft\VisualStudio\v10.0\Web


Raj*_*mal 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

您使用什么构建服务器?