3

我正在使用 Visual Studio 2010。我有一个网站项目,我想在每次构建项目时构建一个网站部署包。基本上,我正在寻找一些构建后 MSBuild 命令的示例,该命令基本上与网站右键菜单中的“构建部署包”选项执行相同的操作。

4

2 回答 2

8

我假设您使用的是 Web 应用程序项目,因为网站项目没有“构建部署包”。

我建议不要在每次构建时都执行一个包,因为它会大大减慢您的开发速度。话虽如此,你可以在这里做到这一点。

如果您真的想这样做,最好不要使用构建后事件,而是编辑项目文件并扩展构建过程。为此,打开您的网络的 .csproj 文件,然后在底部(在 Import 元素之后)放置以下内容

<PropertyGroup>
  <BuildDependsOn>
    $(BuildDependsOn);
    Package
  </BuildDependsOn>
</PropertyGroup>

这样做是将构建过程扩展为调用Package目标。这与在 Visual Studio 中调用“构建部署包”目标时调用的目标相同。

于 2010-07-01T14:56:51.577 回答
1

对我来说,Sayed 的答案不适用于命令行 msbuild 执行(我需要Publish目标,但想法是一样的):

目标依赖图中存在一个循环依赖,涉及目标“构建”

我无法使用DefaultTargets,因为我想在命令行上发布,但只能从 VS 构建。这是有效的:

<Project 
      ToolsVersion="12.0" 
      DefaultTargets="BuildAndOrPublish" 
      xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
      <BuildAndOrPublishDependsOn Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">
        Build
      </BuildAndOrPublishDependsOn>  
      <BuildAndOrPublishDependsOn Condition=" '$(BuildingInsideVisualStudio)' != 'true' ">
        Publish
      </BuildAndOrPublishDependsOn>  
  </PropertyGroup>

  <Target Name="BuildAndOrPublish" DependsOnTargets="$(BuildAndOrPublishDependsOn)"/>
于 2019-01-10T22:24:58.860 回答