如何使用命令行msbuild部署VS2012网站项目,而无需预编译
vs2008:
msbuild websitewebsiteApp.csproj /t:ResolveReferences;Compile /t:_CopyWebApplication /p:Configuration=Release /p:WebProjectOutputDir=d:website /p:OutputPath=d:websitebin
vs2010:
cd C:WindowsMicrosoft.NETFrameworkv4.0.30319
msbuild websitewebsiteApp2010.csproj /t:ResolveReferences;Compile /t:_WPPCopyWebApplication /p:Configuration=Release /p:WebProjectOutputDir=d:website
差别在于:
1.msbuild需要用4.0的
2.原先的 _CopyWebApplication 不支持,还为_WPPCopyWebApplication
3.原先的 /p:OutputPath 不需要使用
4.指定平台 /p:Platform=AnyCPU ,主要是有些项目可能是发布到64位平台,使用这个指令可以指定最终生成的目标平台
在VS中创建发布配置文件后,将创建以下内容:
> App_Data / PublishProfiles下的发布配置文件(.pubxml文件)
>网站根目录下的website.publishproj
website.publishproj的目的是方便命令行发布。它是.csproj / .vbproj的一个填充,你通常在使用Web应用程序项目时会得到。
如果要自动发布,可以使用如下命令。
msbuild.exe website.publishproj /p:DeployOnBuild=true /p:PublishProfile=
msbuild Web.csproj /t:ResolveReferences;Compile /t:_CopyWebApplication /p:Configuration=Release /p:WebProjectOutputDir=C:publish /p:OutputPath=C:publishbin
msbuild.exe ****.csproj /p:DeployOnBuild=true;PublishProfile=IISProfile
/p:UserName=scw /p:Password=12345 /p:VisualStudioVersion=11.0
msbuild foo.sln /p:PreBuildEvent= /p:PostBuildEvent=
其实MSBuild可以加参数来屏蔽警告,有两种方式:
- 1.使用/p:nowarn=1591可以屏蔽CS1591警告信息.如果要同时指定屏蔽多个,可以这样/p:nowarn="105,1591,1572,1573"
- 2.使用/p:WarningLevel=0可以屏蔽所有警告.WarningLevel的分级信息如下:
- 0 关闭所有的警告。
- 1 仅显示严重警告。
- 2 显示 1 级的警告以及某些不太严重的警告,例如有关隐藏类成员的警告。
- 3 显示级别 2 警告以及某些不太严重的警告,例如关于始终评估为 true 或 false 的表达式的警告。
- 4 默认值 显示所有 3 级警告和普通信息警告。



