批处理(编译、加密、发布Nuget).sln 项目

1 篇文章 0 订阅
1 篇文章 0 订阅

批处理(编译、加密、发布Nuget).sln 项目

1、相关语法链接:

1: MSBuild 命令行参考.
2: Nuget 命令行参考.
3: Bat 语法参考.
4: Dotfuscator 的功能.

2、完整示例

@echo off

:: 设置操作   Build 编译;Clean清理;Rebuild 重新编译详见(https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2019)

:: 解决方案名称
set slnName = "XXX.sln"

:: MSBuild.exe程序
set ms="D:\VisualStudio2019\Community\MSBuild\Current\Bin\MSBuild.exe"

::设置日志等级
::Diagnostic 	4  诊断详细级别,它显示所有错误、警告、消息,状态事件以及生成摘要。
::Detailed    	3  详情详细级别,它显示	   错误、警告、MessageImportance 值为 High 或 Normal 的消息、所有状态事件以及生成摘要。
::Normal    	2  普通详细级别,它显示    错误、警告、MessageImportance 值为 High 的消息、一些状态事件以及生成摘要。
::Minimal    	1  最小详细级别,它显示    错误、警告、MessageImportance 值为 High 的消息以及生成摘要。
::Quiet    		0  静默详细级别,它显示生成摘要。

:: 加密方式
set dot="D:\VisualStudio2019\Community\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe"

:: 加密方式
set nuget_Key = "oy2hgcurfrlvay3bpcaqwohcg3f6tnmubahd457jhecqme"
set nuget_url = "https://api.nuget.org/v3/index.json"

@ECHO.
ECHO 当前VS的版本对应的MSBuild.exe程序路径:D:\VisualStudio2019\Community\MSBuild\Current\Bin\MSBuild.exe

color 2
@ECHO.
echo 你是否使用这个版本的MSBuild.exe来编译当前程序?如果不需要编译,请关闭此窗口。
echo,&&echo     1:Debug编译项目
echo,&&echo     2:Release编译项目
echo,&&echo     3:不编译,Debug发布项目
echo,&&echo     4:不编译,Release发布项目
echo,&&echo     5:清理解决方案
echo,&&echo     6:清理Nuget
echo,&&echo     7:退出
echo;
set /p buildType= 输入任务编号 :

color

IF /I "%buildType%"=="1" GOTO BuildDebug
IF /I "%buildType%"=="2" GOTO BuildRelease
IF /I "%buildType%"=="3" GOTO EncryptionDebug
IF /I "%buildType%"=="4" GOTO EncryptionRelease
IF /I "%buildType%"=="5" GOTO Clean
IF /I "%buildType%"=="6" GOTO Clean
IF /I "%buildType%"=="7" GOTO End

:Clean
@ECHO.
echo 正在清理 %slnName% ......
%ms% %slnName% /t:Clean										|| GOTO ER
echo 清理完成
@ECHO.
GOTO EncryptionDebug


:BuildDebug
@ECHO.
echo 正在启动Debug模式编译 %slnName% ......
%ms% %slnName% /t:Build -p:Configuration="Debug" -fileLoggerParameters:FileLogger,Microsoft.Build;logfile=MyLog.Debug.log;append -verbosity:Minimal			|| GOTO ER
echo 编译完成
@ECHO.
GOTO EncryptionDebug

:BuildRelease
@ECHO.
echo 正在启动Release模式编译 %slnName% ......
%ms% %slnName% /t:Build -p:Configuration="Release" -fileLoggerParameters:FileLogger,Microsoft.Build;logfile=MyLog.Release.log;append -verbosity:Minimal		|| GOTO ER
echo 编译完成
@ECHO.
GOTO EncryptionRelease

:EncryptionDebug
@ECHO.
echo 正在对%slnName% 项目dll进行加密 ......
%dot% .\XXX.Debug.Dotfuscator.xml 						|| goto :error
xcopy .\Dotfuscated\*.dll .\bin\Debug\				/Y	|| goto :error
xcopy .\Dotfuscated\*.pdb .\bin\Debug\				/Y	|| goto :error
echo 加密完成
@ECHO.
GOTO CleanNuget

:EncryptionRelease
@ECHO.
echo 正在对%slnName% dll进行加密 ......
%dot% .\XXX.Release.Dotfuscator.xml 				|| goto :error
xcopy .\Dotfuscated\*.dll .\bin\Release\			/Y	|| goto :error
xcopy .\Dotfuscated\*.pdb .\bin\Release\			/Y	|| goto :error
echo 加密完成
@ECHO.
GOTO CleanNuget

:CleanNuget
@ECHO.
echo 正在删除缓存...
del /Q .\Nupkgs\*.*
echo 删除缓存完成
@ECHO.
GOTO Nuget

:Nuget
@ECHO.
echo 正在进行打包...
nuget pack .\路径.csproj					-OutputDirectory .\Nupkgs || GOTO ER
nuget pack .\路径.csproj					-OutputDirectory .\Nupkgs || GOTO ER
nuget pack .\路径.csproj					-OutputDirectory .\Nupkgs || GOTO ER
echo 打包完成
@ECHO.
GOTO Publish

:Publish
@ECHO.
echo 正在进行发布...


nuget push .\Nupkgs\*.nupkg %nuget_Key% -Source %nuget_url%  || GOTO ER
echo 发布完成
@ECHO.
GOTO End

:ER
@ECHO.
ECHO MSBuild.exe Command-Line Build Tool v1.0
GOTO End

:End
@ECHO.
PAUSE
@ECHO ON
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Daniel大妞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值