微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[bash-shell]构建WebAPI项目并且发布到本地

:: 清理log文件
del /S *.log

echo Publish parameters initializing...

::These parameters are not used for the time being
::set DotNetFrameworkPath=%windir%\Microsoft.NET\Framework
::if exist %windir%\SysWOW64 set DotNetFrameworkPath=%windir%\Microsoft.NET\Framework64

:Set user level's parameters
set SolutionPath=%~dp0..\
set SolutionName=ERP
set SolutionFile="%solutionPath%%solutionName%.sln"
set ProjectNames=API1 API2 API3
set PackageNames=API1 API2 API3 Job
set Buildpath=%~dp0..\Builds\
set ZipExe="C:\Program Files\7-Zip\7z.exe"
set IfUseNuGetReStore=N % value is Y or N %
set IfUpdateNuGetTool=N % value is Y or N %

:Set system level's parameters
set Configuration=Debug
set LogLevel=normal
:: Note: That the MSBuild tool version and VisualStudio version and the TargetFramework version have dependencies
set MsBuildToolsversion=14.0
set TargetFrameworkVersion=4.5

set MSBuildpath=C:\Program Files (x86)\MSBuild\%MsBuildToolsversion%\Bin
set MSBuildExe="%MSBuildpath%\MSBuild.exe"

set MSBuildBuildArgs=/t:Rebuild /toolsversion:%MsBuildToolsversion% /verbosity:%LogLevel% /logger:FileLogger,Microsoft.Build.Engine;encoding=utf-8;append=true;logfile="%Buildpath%%solutionName%_Build_%Configuration%.log" /p:Configuration=%Configuration%

set NuGetPath=%solutionPath%.nuget\
set NuGetExe="%NuGetPath%NuGet.exe"
set NuGetArgs=restore %solutionFile%

echo Publish parameters initialize completed.

:: 更新NuGet包
if %IfUseNuGetReStore% == Y (
    if %IfUpdateNuGetTool% == Y (
        echo NuGet tools Start updating...
        %NuGetExe% update -Self
        echo NuGet tools update completed.
    ) else (
        echo Not update NuGet tools.
    )
    echo NuGet Start ReStoreing...
    %NuGetExe% %NuGetArgs%
    echo NuGet ReStore completed.
) else (
    echo Not use NuGet tools.
)

:: 构建解决方案
echo Start solution building...
%MSBuildExe% %solutionFile% %MSBuildBuildArgs%
echo Build solution completed.

:: Win项目发布
echo Start JobConsole project publishing...
%MSBuildExe% "%solutionPath%JobConsole\JobConsole.csproj" /t:Rebuild /verbosity:%LogLevel% /logger:FileLogger,Microsoft.Build.Engine;encoding=utf-8;append=true;logfile="%Buildpath%JobConsole_Publish_%Configuration%.log" /p:Configuration=%Configuration% /p:Platform=Anycpu /p:OutputPath="%Buildpath%JobConsole"
echo Publish JobConsole project completed.

:: Web项目发布
(for %%p in (%ProjectNames%) do (
    echo Start %%p project publishing...
    %MSBuildExe% "%solutionPath%%%p\%%p.csproj" /t:WebPublish /verbosity:%LogLevel% /logger:FileLogger,Microsoft.Build.Engine;encoding=utf-8;append=true;logfile="%Buildpath%%%p_Publish_%Configuration%.log" /p:Configuration=%Configuration% /p:Platform=Anycpu /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl="%Buildpath%%%p"
))

:: 7-zip打包
(for %%p in (%PackageNames%) do (
    echo Start %%p project packing...
    %ZipExe% a -t7z "%Buildpath%%%p_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.7z" "%Buildpath%%%p/*" -r -x!*.config -x!*bak
    echo Pack %%p project completed.
))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐