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