项目中最近做了个SVN代码变更的插件,需要做一个安装盘,发现插件只能用在TortoiseSVN 1.6.x或者以上的版本,这就需要安装盘中在安装时提醒用户安装1.6.x或者以上的SVN客户端版本写了几个公共方法实现如下的版本对比。
//从注册表中获取SVN客户端TortoiseSVN的版本号
function getSVNClientVersion (): String;
begin
RegQueryStringValue(HKCU , 'Software\TortoiseSVN','CurrentVersion', result);
end;
//此函数用于截取版本号数字
procedure DecodeVersion (verstr: String; var verint: array of Integer);
var
i,p: Integer; s: string;
begin
verint := [0,0,0,0];
i := 0;
while ((Length(verstr) > 0) and (i < 4)) do
begin
p := pos (',', verstr);
if p > 0 then
begin
if p = 1 then s:= '0' else s:= Copy (verstr, 1, p - 1);
verint[i] := StrToInt(s);
i := i + 1;
verstr := Copy (verstr, p+1, Length(verstr));
end
else
begin
verint[i] := StrToInt (verstr);
verstr := '';
end;
end;
end;
// 此函数用于比较版本字符串
// 若 ver1 > ver2 返回值 1
// 若 ver1 = ver2 返回值 0
// 若 ver1 < ver2 返回值 -1
function CompareVersion (ver1, ver2: String) : Integer;
var
verint1, verint2: array of Integer;
i: integer;
begin
SetArrayLength (verint1, 4);
DecodeVersion (ver1, verint1);
SetArrayLength (verint2, 4);
DecodeVersion (ver2, verint2);
Result := 0; i := 0;
while ((Result = 0) and (i < 4)) do
begin
if verint1[i] > verint2[i] then
Result := 1
else
if verint1[i] < verint2[i] then
Result := -1
else
Result := 0;
i := i + 1;
end;
end;
来源:Heck's Blog
地址:http://www.hecks.tk/Inno-SetUp-Compare-Software-version/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
分享到:
相关推荐
1. 版本控制:自动更新系统首先要能识别当前软件的版本信息,并与服务器端的最新版本进行对比,判断是否需要更新。 2. 更新检查:在用户启动软件时或特定时间点,系统会自动向服务器发送请求,获取最新的版本信息。...
8. 软件的发布信息:文章中的软件发布信息显示软件被设计为适用于Windows XP系统,使用了Inno Setup进行安装程序的开发,具体版本为1.0GM2。这提供了软件发布时的操作系统兼容性信息。 9. 袁超工程师的背景信息:...
1. **版本管理**:它允许用户跟踪软件的不同版本,确保每次更新都有一个清晰的版本历史记录,便于回溯和对比。 2. **构建与打包**:支持开发者将代码更改打包成可执行的更新文件,如`update.exe`。这个过程可能包括...
C#程序可以调用系统API(如ShellExecute)来运行这个安装包,或者使用第三方库如InnoSetup、WiX等来集成安装过程。 5. **重启应用程序**:更新完成后,为了确保新版本的正确运行,通常需要重新启动应用程序。C#中...
在IT行业中,自动更新工具是软件开发者不可或缺的辅助工具,它能够帮助用户自动获取并安装软件的最新版本,确保软件始终处于最新的稳定状态。VB,全称Visual Basic,是微软公司推出的一种面向对象的编程语言,它简洁...
例如,使用安装包管理工具(如Inno Setup)来封装软件和注册信息,确保升级时不丢失注册状态。 综上所述,利用Delphi设计基于网卡序列号的软件注册系统涉及多个技术环节,包括获取硬件信息、数据处理、注册码生成与...
- **检测更新**:VB程序启动时,首先向服务器发送请求,获取当前版本号和最新版本号的对比。 - **下载更新**:如果检测到有新版本,向用户展示更新提示,用户确认后开始下载更新包。 - **验证更新**:下载过程中...
4. **插件应用**:介绍常用的NSIS插件及其使用方法,如InnoSetup对比、NSIS与WiX的区别等。 5. **问题解答**:收录了常见问题及解决方法,帮助用户在遇到困难时找到答案。 这些资源对于想要学习和掌握NSIS的人来说...
NSIS相比其他安装制作工具(如Inno Setup、InstallShield等),有着明显的优势,如免费、开源、跨平台编译等。然而,不同的工具各有优缺点,选择哪个取决于项目需求和个人喜好。 总之,NSIS作为一个强大的安装制作...
这门课程主要关注的是如何利用计算机对图像进行分析、操作和理解,涉及到图像的获取、表示、变换、增强、恢复、压缩、识别等多个方面。在“数字图像处理教案”中,我们可以通过罗三定教授的PPT来深入学习这一领域的...
5、AQtimeRS.exe、CodeSite Express、CollabNetSubversion-client-1.7.5-1-Win32.exe、DevJET_DI_Setup_Express.exe、FBSE700.exe、RaveReportsSetup_Win.exe,当前官方 RTM 版本就是没有这些安装包的 其他: 1、...