【问题标题】:What does the Microsoft.WebApplication.targets import do in VS 2010 web application projects?Microsoft.WebApplication.targets 导入在 VS 2010 Web 应用程序项目中有什么作用?
【发布时间】:2010-04-28 00:41:54
【问题描述】:

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

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

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

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

我问的原因是当项目在构建服务器上编译时,目标不存在,因为没有安装 Visual Studio。

【问题讨论】:

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


    【解决方案1】:

    正如 cmets 对 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\Microsoft\VisualStudio\v10.0\WebApplications
    2. %ProgramFiles%\MSBuild\Microsoft\VisualStudio\v10.0\Web → MSBuild.MSVS\Microsoft\VisualStudio\v10.0\Web

    【讨论】:

      【解决方案2】:

      包含 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

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

      【讨论】:

      【解决方案3】:

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

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

      -丹尼尔

      【讨论】:

      • 好点丹尼尔。虽然你的帖子应该是评论而不是答案
      • 我试过了,不幸的是我认为 MSBuild 扩展包不包含 WebApplications 目标,即这个问题中提到的目标。
      【解决方案4】:

      如果您不从构建服务器进行部署,那么您可以关闭构建服务器上的 Microsoft.WebApplication.targets。在这里查看我的答案:https://stackoverflow.com/a/35781566/4955344

      【讨论】:

      • 也许应该将原始问题标记为此链接的副本?
      猜你喜欢
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      相关资源
      最近更新 更多