我正在使用visual studio 2010.我有一个网站项目,我想在每次构建项目时构建一个网站部署包。基本上我正在寻找一个post build MSBuild命令的例子,该命令基本上与网站右键菜单中的“Build Deployment Package”选项做同样的事情。
答案 0 :(得分:8)
我假设您正在使用Web应用程序项目,因为Web站点项目没有“构建部署包”。
我建议不要在每次构建时执行包,因为这会大大减慢您的开发速度。话虽如此,你可以在这里做到这一点。
如果真的想要这样做,最好的办法就是不要使用构建后事件,而是编辑项目文件并扩展构建过程。要执行此操作,请打开Web的.csproj文件,然后打开底部(在导入元素之后)放置以下内容
<PropertyGroup>
<BuildDependsOn>
$(BuildDependsOn);
Package
</BuildDependsOn>
</PropertyGroup>
这样做是为了扩展构建过程以调用 Package 目标。这与在Visual Studio中调用“构建部署包”目标时调用的目标相同。
答案 1 :(得分:0)
对我来说,Sayed's answer不能与命令行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)"/>