PIE-SAR软件自动化编译与发布

news2024/12/23 10:02:00

1.背景

SVN版本控制下多人协调编写代码,会经常性的提交新功能,修改完善已有功能。产品经理、测试人员需定期回归测试,确保禅道Bug已经修复,这就需要经常性地打包软件。为了节省编译时间,也方便产品经理可随时去取最新的版本,参考网上的材料,总结自动化编译的流程。

2.目标

无需人工参与,定期自动编译工程,翻译文件,并将生成的库,配置文件复制到指定共享存储目录。

3.自动化脚本

3.1自动化编译脚本

AutomaticCompile_v73.bat

REM ************************************************************************************************
REM * Script to compile the solutions of Viusal Studio 2015                                                    *
REM * Created by: IvanLJF                                                                    	   *
REM * Created 2023.04.16                                                                           *
REM ************************************************************************************************
 
REM STEP 1: set environment variables:
REM ************************************************************************************************
SET VS2015Compiler="%VS140COMNTOOLS%..\..\Common7\IDE\devenv.com"
REM ************************************************************************************************
 
 
REM STEP 2: set compile log
REM ************************************************************************************************
SET CompileLogName="%~dp0PIE-SAR_v73_CompileResults.log"
ECHO [%DATE% %Time%] Start compile sequence >%CompileLogName%
ECHO Used compile configuration is %buildAnyCPU% >>%CompileLogName%
REM ************************************************************************************************
 
 
REM STEP 3: Start compile
REM ************************************************************************************************
SET SolutionFileName="%~dp0PIE-SAR_v7.x_All.sln"
%VS2015Compiler% %SolutionFileName% /build "Release|x64" /Out %CompileLogName%
IF NOT %errorlevel% == 0 ECHO %SolutionFileName% failed!   Error: %errorlevel% >>%CompileLogName%
IF %errorlevel% == 0 ECHO %SolutionFileName% compiled successful >>%CompileLogName%
REM ************************************************************************************************
 
 
REM STEP 4: If compile failed stop processing:
REM ************************************************************************************************
IF NOT %errorlevel% == 0 PAUSE
 
ECHO [%DATE% %Time%] Finished compile sequence >>%CompileLogName%
REM ************************************************************************************************


REM STEP 5:  language files

call language.bat
REM ************************************************************************************************

REM STEP 6: Release Daily Version Management

call DailyVersionManagement_v73.bat
REM ************************************************************************************************

3.2 自动中文翻译(ts–>qm)

Language.bat

REM ************************************************************************************************
REM * Script to translate ts to qm                                                                 *
REM * Created by: IvanLJF                                                                    	   *
REM * Created 2023.04.16                                                                           *
REM ************************************************************************************************

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION 

set srcdir=%PIEV4_SRC%Language
set dstdir=%PIEV4_OUT_DIR%\Language

if not exist %dstdir% ( md %dstdir% )
for /f "delims=" %%i in ( 'dir /ad/b/s %srcdir%' ) do ( 
	md %dstdir%\%%~ni 
)

cd /d %srcdir%

echo srcdir:%srcdir%

echo dstdir:%dstdir%

echo current path:%cd%

for /r %%i in (*.ts) do if exist %%i (   
    set srcfile=%%i    
    echo src file is: !srcfile!
    set dstfile=!srcfile:%srcdir%=%dstdir%!
    set dstfile=!dstfile:.ts=.qm!
    echo dst file is: !dstfile!
    lrelease !srcfile! -qm !dstfile!
)

REM: pause

3.3 每日版本发布

DailyVersionManagement_v73.bat

REM ************************************************************************************************
REM * Script to release pie-sar 7.3 software to 193                                                *
REM * Created by: IvanLJF                                                                    	   *
REM * Created 2023.04.16                                                                           *
REM ************************************************************************************************

:: /xf 指定不执行复制操作的文件类型
:: /xd 表示排除指定的文件夹


@echo off
SETLOCAL ENABLEDELAYEDEXPANSION 



set srcdir="D:\Code\PIE6.0_vs2015\PIE_CPLUS\src\OutDir"
set dstdir="\\172.16.20.193\xjsf\PIE-SAR7.3_DailyVersion"

::使用共享文件夹
net use \\172.16.20.193\xjsf xjsf /user:xjsf

::创建每日文件夹
set ymd=%date:~,4%%date:~5,2%%date:~8,2%
set dstdir=%dstdir%\%ymd%
MD %dstdir%

::拷贝
robocopy %srcdir%\config %dstdir%\config *.* /e /s /xo

robocopy %srcdir%\data %dstdir%\data *.* /e /s /xo /xd AtmCor_LUT Cali definitions

robocopy %srcdir%\Fonts %dstdir%\Fonts *.* /e /s /xo

robocopy %srcdir%\Language %dstdir%\Language *.* /e /s /xo

robocopy %srcdir%\Release_x64 %dstdir%\Release_x64 *.* /e /s /xo /xf *.lib *.exp *.ilk *.iobj *.ipdb *.pdb

robocopy %srcdir%\Release_x64_MTInSAR %dstdir%\Release_x64_MTInSAR *.* /e /s /xo /xf *.lib *.exp *.ilk *.iobj *.ipdb *.pdb

robocopy %srcdir%\res %dstdir%\res *.* /e /s /xo 

4 devenv.com用法

可用的命令行开关:

【/Build 】使用指定的解决方案配置生成解决方案或项目。例如“Debug”。如果可能存在多个平台,则配置名称必须用引号括起来并且包含平台名称。例如“Debug|Win32”。

【/Clean】删除生成结果。

【/Command 】启动 IDE 并执行该命令。

【/Deploy 】生成并部署指定的生成配置。

【/Edit 】在此应用程序的运行实例中打开指定文件。如果没有正在运行的实例,则启动一个具有简化窗口布局的新实例。

【/LCID】设置 IDE 中用于用户界面的默认语言。

【/Log】将 IDE 活动记录到指定的文件以用于故障排除。

【/NoVSIP】禁用用于 VSIP 测试的 VSIP 开发人员许可证密钥。

【/Out】将生成日志追加到指定的文件中。

【/Project 】指定生成、清理或部署的项目。必须和 /Build、/Rebuild、/Clean 或 /Deploy 一起使用。

【/ProjectConfig】重写解决方案配置中指定的项目配置。例如“Debug”。如果可能存在多个平台,则配置名称必须用引号括起来 ,并包含平台名称。例如“Debug|Win32”。 必须和 /Project 一起使用。

【/Rebuild 】先清理,然后使用指定配置生成解决方案或项目。

【/ResetAddin】移除与特定外接程序关联的命令和命令用户界面。

【/ResetSettings】恢复 IDE 的默认设置,还可以重置为指定的 VSSettings 文件。

【/ResetSkipPkgs】清除所有添加到 VSPackages 的 SkipLoading 标记。

【/Run】编译并运行指定的解决方案。

【/RunExit】编译并运行指定的解决方案然后关闭 IDE。

【/SafeMode】以安全模式启动 IDE,加载最少数量的窗口。

【/Upgrade 】升级项目或解决方案以及其中的所有项目。并相应地创建这些文件的备份。有关备份过程的更多信息,请参见“Visual Studio 转换向导”上的帮助。

5.定期执行

使用windows的任务计划程序。定期执行bat脚本。【开始】–【任务计划程序】
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MiniGPT-4,开源了!

上个月GPT-4发布时,我曾写过一篇文章分享过有关GPT-4的几个关键信息。 当时的分享就提到了GPT-4的一个重要特性,那就是多模态能力。 比如发布会上演示的,输入一幅图(手套掉下去会怎么样?)。 GPT-4可以理解…

基于51单片机的差分双路电压检测(基于ADC0832)

文章目录 前言一、本文任务二、材料三、电路图四、代码解读1.引脚定义及参数2.定时器中断与延时开启3.数码管显示定义及ADC0832函数初始化4.数据转换及数码管显示5.主函数及定时器函数6.所有代码(就一个c文件) 总结 前言 博主终于又空出时间啦&#xff…

二战失利,剩下的路?

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 这是阿秀的第「260」篇原创 小伙伴们大家好,我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈,目前已经超过 2300 小伙伴加入!去年认真准备和走下来的基…

如何使用chatGPT生成小红书种草文案

如何使用chatGPT生成小红书种草文案 小红书拥有超千万的日活用户,为商家提供了广阔的变现空间和机会,成为商家选择在小红书上推广的原因之一。 小红书种草文案,例如具有影响力的热门话题、产品使用方法等内容可以让消费者迅速了解产品为品牌…

小米青春版路由器刷openwrt

下载小米路由器R1CL开发版 通过手动上传更新,更改固件版本 将之前地址栏URL中的 /web/home#router 替换为(密码为admin) /api/xqsystem/set_name_password?oldPwd123456789&newPwdadmin如果网页返回 {“code”:0} ,则说明修…

JAVA的BIO、NIO、AIO模式精解(一)

1. BIO、NIO、AIO介绍 在不同系统或进程间数据交互,或高并发场景下都选哟网络通信。早期是基于性能低下的同步阻塞IO(BIO)实现。后支持非阻塞IO(NIO)。 前置须知:javsse,java多线程,javaIO,java网络模型 目的&#xf…

[江西专升本/信息技术]计算机网络基础

1、概论 目前主要从资源共享观点定义计算机网络: 用通信路线和通信设备将分布在不同地点的具有独立功能的多个计算机系统相互连接起来,在功能完善的网络软件的支持下实现彼此之间的数据通信和资源共享的系统; 我们可以这么说,“…

effective c++ item30-34

item30:理解inline 1、inline函数 用inline修饰函数可以防止multiple definition的错误 // foo.h inline int foo(int x){ // 如果不加inline,在编译时会有两个foo.h被包含进去,导致链接出错static int n 1;return x * (n ); } // bar1.cpp #includ…

【车道线算法】GANet-车道线检测环境配置一文通关

目录 GANet配置全纪录 下载代码 conda环境部署 安装torch和cudatoolkit 安装其他包 编译 总结 GANet配置全纪录 下载代码 GitHub - Wolfwjs/GANet: A Keypoint-based Global Association Network for Lane Detection. Accepted by CVPR 2022 进入代码网址的默认master…

ArcGIS Pro工程

目录 1 工程基础架构 2 工程内容 3 新建工程及工程文件 3.1 工程模板 3.2 工程名称和位置 3.2.1 基于“地图模板”创建新工程 3.2.2 基于“目录模板”创建新工程 3.2.3 基于“全局场景”创建新工程 3.2.4 基于“局部场景”创建新工程 3.3 工程文件 3.3.1 默认地理…

子元素选择器

知识点&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content"IEedge"> <meta name"viewport" c…

【MySQL高级】——用户与权限管理

一、用户管理 <1> 登录 mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"-h参数 后面接主机名或者主机IP&#xff0c;hostname为主机&#xff0c;hostIP为主机IP。 -P参数 后面接MySQL服务的端口&#xff0c;通过该参数连接…

序列检测和序列发生器——verilog代码实现

文章目录 前言一、序列检测器1.1 重复序列检测1.1.1 序列缓存对比/移位寄存器法1.1.2 状态机法 1.2 非重复序列检测 二、序列发生器2.1 移位寄存器法2.2 反馈法2.3 计数器法 前言 2023.4.25 2023.4.26 学习打卡&#xff0c;天气转晴 一、序列检测器 1.1 重复序列检测 1.1.1 …

HTML基础标签

目录 1.html文件结构 2.注释 3.文本标签 4.图片 5.音频与视频 6.超链接 7.表单 8.列表&#xff08;可以嵌套&#xff09; 无序列表 有序列表 定义列表 9.表格 10.语义标签 11.特殊符号 1.html文件结构 <!-- 文档类型声明 --> <!DOCTYPE html> <html>…

学系统集成项目管理工程师(中项)系列12_干系人管理

1. 要管理干系人的期望&#xff0c;更要保证他们的适度参与&#xff0c;而后者是项目成功非常关键的因素之一 1.1. 识别干系人及其信息 1.2. 评估关键干系人的诉求和影响力 1.3. 对干系人分类 1.4. 制定干系人管理计划 1.5. 【19上选56】 2. 识别干系人 2.1. 典型干系人…

如何解决宝塔面板nginx占用80端口的问题

前言: 由于使用Docker部署前端项目老是报错说80端口被占用,所以不得不去查找原因并且解决 上网查了很多资料说修改80端口这对我(有点强迫症)来说修改让我很难受 开始: 我们去找到虚拟机的这个目录 /www/server/panel/vhost/nginx 然后直接修改下面的文件 修改文件的端口 最…

windows中python安装保姆教程

猜你感兴趣 牛逼的python库-使用Pyinstaller将python打包成exe使用python实现自动点击功能python进程&#xff0c;线程&#xff0c;协程简介快速搭建私有pip镜像源 简介 Python 是一种开源的解释型脚本编程语言&#xff0c;Python简单易用&#xff0c;学习成本低&#xff0c;…

ChatGLM-6B的P-Tuning微调详细步骤及结果验证

文章目录 1. ChatGLM-6B1.1 P-Tuning v2简介 2. 运行环境2.1 项目准备 3.数据准备4.使用P-Tuning v2对ChatGLM-6B微调5. 模型评估6. 利用微调后的模型进行验证6.1 微调后的模型6.2 原始ChatGLM-6B模型6.3 结果对比 1. ChatGLM-6B ChatGLM-6B仓库地址&#xff1a;https://githu…

<<c和指针>>温故及问题研讨(第三章)

第三章-数据 1. 前言2. 基本数据类型2.1 整型家族2.2 字面值常量 3. 基本声明3.1 数组的声明以及引用3.2 指针的声明注意事项3.3 隐式声明 4. 常量5. 作用域5.1 代码块作用域5.2 文件作用域5.3 原型作用域 6. 链接属性6.1 链接属性分类以及作用范围6.2 关键字:extern和static6.…

数据库基础篇 《18.MySQL8其它新特性》

第18章_MySQL8其它新特性 1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本&#xff0c;可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强&#xff0c;开发者对MySQL的源代码进行了重构&#xff0c;最突出的一点是多MySQL Optimizer优化…