在做BS的项目过程中。我们一般多是右键直接选择项目发布
图:
但是如果一个项目很大,一个一个的打开发布会很麻烦。因此通过批处理发布能节省好多时间。每一个模块的页面可以为一个批处理:
最后可以写一个总的批处理
@ECHO OFF
//设置路径也就是安装Vs后Framework路径
@Set PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;%PATH:C:\Windows\Microsoft.NET\Framework\v4.0.30319;=%
//判断环境变量是否存在//"%VS100COMNTOOLS%vsvars32.bat" 安装Vs的Common7\Tools下面
IF NOT "%VSTOOLS_EXEC%"=="1" (
SET VSTOOLS_EXEC=1
call "%VS100COMNTOOLS%vsvars32.bat"
)
安装Vs的Common7\Tools下面:
vsvars32.bat:
ECHO ***************************
ECHO WebApplicationBat
ECHO ***************************
REM 生成前把Bin文件里面的dll删除
//可以用绝对路径或者相对路径
DEL /S /Q "..\WebApplicationBat\WebApplicationBat\bin\*.dll"
DEL 解释
删除一个或数个文件。 DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names names 指定一个或数个文件或目录列表。通配符可被用来 删除多个文件。如果指定了一个目录,目录中的所 有文件都会被删除。 /P 删除每一个文件之前提示确认。 /F 强制删除只读文件。 /S 从所有子目录删除指定文件。 /Q 安静模式。删除全局通配符时,不要求确认。 /A 根据属性选择要删除的文件。 attributes R 只读文件 S 系统文件 H 隐藏文件 A 存档文件 - 表示“否”的前缀 如果命令扩展名被启用,DEL 和 ERASE 会如下改变: /S 开关的显示句法会颠倒,即只显示已经 删除的文件,而不显示找不到的文件。 del删除文件 deltree删除文件夹,包括不空的文件夹,当然文件夹下的文件也一并删掉了
REM 生成
//选择模式为Release 平台X86(根据你的需求)
//..\WebApplicationBat\WebApplicationBat.sln 项目的解决方案
//log\WebApplicationBat.log 创建文件存放生成的log信息
http://msdn.microsoft.com/zh-cn/library/ms164311.aspx MSBuild 命令行参考
MSBuild "..\WebApplicationBat\WebApplicationBat.sln" /property:Configuration=Release;Platform=x86 /target:Rebuild /logger:FileLogger,Microsoft.Build.Engine;logFile=log\WebApplicationBat.log
ECHO MSBuild "..\WebApplicationBat\WebApplicationBat.sln" /property:Configuration=Release;Platform=x86 /target:Rebuild /logger:FileLogger,Microsoft.Build.Engine;logFile=log\WebApplicationBat.log
REM 生成的文件复制到其他文件夹里面
http://support.microsoft.com/kb/240268/zh-cn
http://support.microsoft.com/kb/323007/zh-cn XCopy用法
http://support.microsoft.com/kb/326355/zh-cn 如何部署使用 Xcopy 部署的 ASP.NET Web 应用程序
//..\WebApplicationBat\WebApplicationBat\bin\WebApplicationBat.dll ==〉release\WebApplicationBat\bin\ 从原来Bin目录下生成dll的复制到新的Bin目录
//..\WebApplicationBat\WebApplicationBat\*.aspx==〉release\WebApplicationBat\从原来目录下的aspx页面复制到新的目录下
XCopy /D /I /V /Y "..\WebApplicationBat\WebApplicationBat\bin\WebApplicationBat.dll" "release\WebApplicationBat\bin\"
XCopy /D /I /V /Y "..\WebApplicationBat\WebApplicationBat\*.aspx" "release\WebApplicationBat\"
发布前的程序及发布后存放LOG和编译后 的文件夹:
点击WebApplicationBat.bat进行发布:(注发布前先编译一下程序:切记)
@ECHO OFF @Set PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;%PATH:C:\Windows\Microsoft.NET\Framework\v4.0.30319;=% IF NOT "%VSTOOLS_EXEC%"=="1" ( SET VSTOOLS_EXEC=1 call "%VS100COMNTOOLS%vsvars32.bat" ) ECHO *************************** ECHO WebApplicationBat ECHO *************************** REM 生成前把Bin文件里面的dll删除 DEL /S /Q "..\WebApplicationBat\WebApplicationBat\bin\*.dll" REM 生成 MSBuild "..\WebApplicationBat\WebApplicationBat.sln" /property:Configuration=Release;Platform=x86 /target:Rebuild /logger:FileLogger,Microsoft.Build.Engine;logFile=log\WebApplicationBat.log ECHO MSBuild "..\WebApplicationBat\WebApplicationBat.sln" /property:Configuration=Release;Platform=x86 /target:Rebuild /logger:FileLogger,Microsoft.Build.Engine;logFile=log\WebApplicationBat.log REM 生成的文件复制到其他文件夹里面 XCopy /D /I /V /Y "..\WebApplicationBat\WebApplicationBat\bin\WebApplicationBat.dll" "release\WebApplicationBat\bin\" XCopy /D /I /V /Y "..\WebApplicationBat\WebApplicationBat\*.aspx" "release\WebApplicationBat\"
发布后存放发布信息Log:
详细Log信息:
生成启动时间为 2012/12/20 22:24:58。 __________________________________________________ 项目“D:\WebApplicationBat\WebApplicationBat.sln”(Rebuild 个目标): 目标 ValidateSolutionConfiguration: 正在生成解决方案配置“Release|x86”。 目标 Rebuild: __________________________________________________ 项目“D:\WebApplicationBat\WebApplicationBat.sln”正在生成“D:\WebApplicationBat\WebApplicationBat\WebApplicationBat.csproj”(Rebuild 目标): 目标 CoreClean: 正在删除文件“D:\WebApplicationBat\WebApplicationBat\bin\WebApplicationBat.pdb”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\bin\EntityFramework.xml”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\bin\DotNetOpenAuth.Core.xml”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\bin\DotNetOpenAuth.OAuth.xml”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\bin\DotNetOpenAuth.OAuth.Consumer.xml”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\bin\DotNetOpenAuth.OpenId.xml”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\bin\DotNetOpenAuth.OpenId.RelyingParty.xml”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\bin\DotNetOpenAuth.AspNet.xml”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\obj\x86\Release\WebApplicationBat.csprojResolveAssemblyReference.cache”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\obj\x86\Release\WebApplicationBat.dll”。 正在删除文件“D:\WebApplicationBat\WebApplicationBat\obj\x86\Release\WebApplicationBat.pdb”。 目标 GenerateTargetFrameworkMonikerAttribute: 正在跳过目标“GenerateTargetFrameworkMonikerAttribute”,因为所有输出文件相对于输入文件而言都是最新的。 目标 CoreCompile: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:x86 /errorreport:prompt /define:TRACE /highentropyva+ /reference:D:\WebApplicationBat\packages\WebGrease.1.1.0\lib\Antlr3.Runtime.dll /reference:D:\WebApplicationBat\packages\AspNet.ScriptManager.jQuery.1.7.1\lib\net45\AspNet.ScriptManager.jQuery.dll /reference:D:\WebApplicationBat\packages\AspNet.ScriptManager.jQuery.UI.Combined.1.8.20\lib\net45\AspNet.ScriptManager.jQuery.UI.Combined.dll /reference:D:\WebApplicationBat\packages\DotNetOpenAuth.AspNet.4.0.3.12153\lib\net40-full\DotNetOpenAuth.AspNet.dll /reference:D:\WebApplicationBat\packages\DotNetOpenAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.Core.dll /reference:D:\WebApplicationBat\packages\DotNetOpenAuth.OAuth.Consumer.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.Consumer.dll /reference:D:\WebApplicationBat\packages\DotNetOpenAuth.OAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.dll /reference:D:\WebApplicationBat\packages\DotNetOpenAuth.OpenId.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.dll /reference:D:\WebApplicationBat\packages\DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.RelyingParty.dll /reference:D:\WebApplicationBat\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll /reference:D:\WebApplicationBat\packages\Microsoft.AspNet.Membership.OpenAuth.1.0.0\lib\net45\Microsoft.AspNet.Membership.OpenAuth.dll /reference:D:\WebApplicationBat\packages\Microsoft.AspNet.Web.Optimization.WebForms.1.0.0\lib\net45\Microsoft.AspNet.Web.Optimization.WebForms.dll /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.CSharp.dll" /reference:D:\WebApplicationBat\packages\Microsoft.AspNet.ScriptManager.MSAjax.4.5.6\lib\net45\Microsoft.ScriptManager.MSAjax.dll /reference:D:\WebApplicationBat\packages\Microsoft.AspNet.ScriptManager.WebForms.4.5.6\lib\net45\Microsoft.ScriptManager.WebForms.dll /reference:D:\WebApplicationBat\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Configuration.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Core.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Drawing.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.EnterpriseServices.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.ApplicationServices.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.DynamicData.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.Entity.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.Extensions.dll" /reference:D:\WebApplicationBat\packages\Microsoft.AspNet.Web.Optimization.1.0.0\lib\net40\System.Web.Optimization.dll /reference:D:\WebApplicationBat\packages\Microsoft.AspNet.Providers.Core.1.1\lib\net40\System.Web.Providers.dll /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.Services.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll" /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" /reference:D:\WebApplicationBat\packages\WebGrease.1.1.0\lib\WebGrease.dll /debug:pdbonly /optimize+ /out:obj\x86\Release\WebApplicationBat.dll /subsystemversion:6.00 /target:library /utf8output App_Start\BundleConfig.cs App_Start\AuthConfig.cs About.aspx.cs About.aspx.designer.cs Account\Login.aspx.cs Account\Login.aspx.designer.cs Account\Manage.aspx.cs Account\Manage.aspx.designer.cs Account\OpenAuthProviders.ascx.cs Account\OpenAuthProviders.ascx.designer.cs Account\Register.aspx.cs Account\Register.aspx.designer.cs Account\RegisterExternalLogin.aspx.cs Account\RegisterExternalLogin.aspx.designer.cs Contact.aspx.cs Contact.aspx.designer.cs Default.aspx.cs Default.aspx.designer.cs Global.asax.cs Properties\AssemblyInfo.cs Site.Master.cs Site.Master.designer.cs "C:\Users\starking\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.cs" 目标 _CopyFilesMarkedCopyLocal: 正在将文件从“D:\WebApplicationBat\packages\WebGrease.1.1.0\lib\Antlr3.Runtime.dll”复制到“bin\Antlr3.Runtime.dll”。 正在将文件从“D:\WebApplicationBat\packages\AspNet.ScriptManager.jQuery.1.7.1\lib\net45\AspNet.ScriptManager.jQuery.dll”复制到“bin\AspNet.ScriptManager.jQuery.dll”。 正在将文件从“D:\WebApplicationBat\packages\AspNet.ScriptManager.jQuery.UI.Combined.1.8.20\lib\net45\AspNet.ScriptManager.jQuery.UI.Combined.dll”复制到“bin\AspNet.ScriptManager.jQuery.UI.Combined.dll”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.AspNet.4.0.3.12153\lib\net40-full\DotNetOpenAuth.AspNet.dll”复制到“bin\DotNetOpenAuth.AspNet.dll”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.Core.dll”复制到“bin\DotNetOpenAuth.Core.dll”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.OAuth.Consumer.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.Consumer.dll”复制到“bin\DotNetOpenAuth.OAuth.Consumer.dll”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.OAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.dll”复制到“bin\DotNetOpenAuth.OAuth.dll”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.OpenId.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.dll”复制到“bin\DotNetOpenAuth.OpenId.dll”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.RelyingParty.dll”复制到“bin\DotNetOpenAuth.OpenId.RelyingParty.dll”。 正在将文件从“D:\WebApplicationBat\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll”复制到“bin\EntityFramework.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.AspNet.Membership.OpenAuth.1.0.0\lib\net45\Microsoft.AspNet.Membership.OpenAuth.dll”复制到“bin\Microsoft.AspNet.Membership.OpenAuth.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.AspNet.Web.Optimization.WebForms.1.0.0\lib\net45\Microsoft.AspNet.Web.Optimization.WebForms.dll”复制到“bin\Microsoft.AspNet.Web.Optimization.WebForms.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.AspNet.ScriptManager.MSAjax.4.5.6\lib\net45\Microsoft.ScriptManager.MSAjax.dll”复制到“bin\Microsoft.ScriptManager.MSAjax.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.AspNet.ScriptManager.WebForms.4.5.6\lib\net45\Microsoft.ScriptManager.WebForms.dll”复制到“bin\Microsoft.ScriptManager.WebForms.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll”复制到“bin\Microsoft.Web.Infrastructure.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.AspNet.Web.Optimization.1.0.0\lib\net40\System.Web.Optimization.dll”复制到“bin\System.Web.Optimization.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.AspNet.Providers.Core.1.1\lib\net40\System.Web.Providers.dll”复制到“bin\System.Web.Providers.dll”。 正在将文件从“D:\WebApplicationBat\packages\WebGrease.1.1.0\lib\WebGrease.dll”复制到“bin\WebGrease.dll”。 正在将文件从“D:\WebApplicationBat\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.xml”复制到“bin\EntityFramework.xml”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.Core.xml”复制到“bin\DotNetOpenAuth.Core.xml”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.OAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.xml”复制到“bin\DotNetOpenAuth.OAuth.xml”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.OAuth.Consumer.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.Consumer.xml”复制到“bin\DotNetOpenAuth.OAuth.Consumer.xml”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.OpenId.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.xml”复制到“bin\DotNetOpenAuth.OpenId.xml”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.RelyingParty.xml”复制到“bin\DotNetOpenAuth.OpenId.RelyingParty.xml”。 正在将文件从“D:\WebApplicationBat\packages\DotNetOpenAuth.AspNet.4.0.3.12153\lib\net40-full\DotNetOpenAuth.AspNet.xml”复制到“bin\DotNetOpenAuth.AspNet.xml”。 正在将文件从“D:\WebApplicationBat\packages\EntityFramework.5.0.0\lib\net45\zh-Hans\EntityFramework.resources.dll”复制到“bin\zh-Hans\EntityFramework.resources.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.AspNet.Web.Optimization.1.0.0\lib\net40\zh-Hans\System.Web.Optimization.resources.dll”复制到“bin\zh-Hans\System.Web.Optimization.resources.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.AspNet.Providers.Core.1.1\lib\net40\zh-Hans\System.Web.Providers.resources.dll”复制到“bin\zh-Hans\System.Web.Providers.resources.dll”。 正在将文件从“D:\WebApplicationBat\packages\Microsoft.AspNet.Membership.OpenAuth.1.0.0\lib\net45\zh-Hans\Microsoft.AspNet.Membership.OpenAuth.resources.dll”复制到“bin\zh-Hans\Microsoft.AspNet.Membership.OpenAuth.resources.dll”。 目标 CopyFilesToOutputDirectory: 正在将文件从“obj\x86\Release\WebApplicationBat.dll”复制到“bin\WebApplicationBat.dll”。 WebApplicationBat -> D:\WebApplicationBat\WebApplicationBat\bin\WebApplicationBat.dll 正在将文件从“obj\x86\Release\WebApplicationBat.pdb”复制到“bin\WebApplicationBat.pdb”。 已成功生成。 0 个警告 0 个错误 已用时间 00:00:01.25
至此我们得到想要的结果了,亲,下一步就是放在IIS里面进行搭建服务了。
PS:
总的批处理:
CD .\Build //存放bat文件夹
call WebApplicationBat.bat
call WebApplicationBat1.bat //一个一个往下排
cd ..
总结:
我希望这篇文章能对初学者在发布bs及cs.dll的应用程序有所帮助。如果你有什么好的意见或者好的方法可以告诉我,以此提高文章。
谢谢。
ps:
vc的exe及dll的批处理发布
REM 编译
//log\VC\TestVc.log 在Log文件夹下面创建个vc存放Log的文件夹
MSBuild "..\VC\TestVc\TestVc.sln" /property:Configuration=Release;Platform=Win32 /target:Rebuild /logger:FileLogger,Microsoft.Build.Engine;logFile=log\VC\TestVc.log
REM 文件复制
//..\VC\TestVc\release\TestVc.EXE 这里可以说vc的exe和dll
//.\VC\TestVc\Bin\ 发布存放exe和dll的文件夹路径
XCopy /I /V /Y "..\VC\TestVc\release\TestVc.EXE" "..\VC\TestVc\Bin\"