`
gaoyuntao2005
  • 浏览: 311151 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

定制TortoiseSVN安装包

阅读更多

TortoiseSVN的MSI安装包是使用Windows Installer XML (WIX)生成的。关于WIX的语法在这里不做解释,有兴趣的可以在网上搜搜,资料很多。今天我们将通过修改TortoiseSVN源代码中WIX的配置文件,来实现TortoiseSVN英文安装包和简体中文安装包的合并,并指定TortoiseSVN的默认语言为简体中文。

整体思路

分析TortoiseSVN中文包的安装过程,我们可以知道,安装TortoiseSVN中文包就是在TortoiseSVN安装目录的Languages文件夹下添加如下文件及文件夹,

clip_image002

(图一)

并在注册表“HKEY_CURRENT_USER——Software——TortoiseSVN”键下添加“DWORD 值”,名称:LanguageID,值:2052,基数:十进制。

根据这些分析我们将使用以下步骤来完成这个工作:

1. 在TortoiseSVN英文版安装完毕后,将图一所示文件拷贝至安装目录的相应位置;

2. 在注册表中添加“LanguageID”键;

准备文件

1. 生成TortoiseSVN安装包所需要的文件,可以通过编译TortoiseSVN源代码(具体方法见“编译TortoiseSVN源代码”)或在已安装TortoiseSVN的计算机上拷贝获得。

编译TortoiseSVN后生成的文件位于TortoiseSVN源代码根目录的“bin\release\bin”文件夹下。

可以在TortoiseSVN源代码根目录下运行“Nant msi”来测试生成MSI安装包所需文件都是否全部生成完毕,若有缺失,请重新编译TortoiseSVN,或者从已安装TortoiseSVN的计算机上拷贝相应文件至相应目录(Nant有提示那些路径缺少那些文件)。

若安装文件没有缺失,则可以在源代码的根目录的“bin”下,找到我们生成的MSI安装包,当然这只是最原始的英文安装包。

2. 为了能够将中文安装包和英文安装包合并,需要将图一所示文件(可在已安装TortoiseSVN中文包的计算机上拷贝)拷贝至源代码根目录的“bin\release\bin\LanguagePack_zh_CH”目录下。

经过以上步骤,生成中文安装包所需文件都已准备就绪,下面我们通过修改WIX的配置文件来完成这个中文安装包的制作。

修改WIX配置文件

本次我们要修改的WIX配置文件主要有以下三个:

1. FeaturesFragment.wxs:控制安装包中包含的可选及必选内容,在安装时供用户选择,如图二所示:

clip_image004

图二

2. Includes.wxi:为文件夹等生成一个GUID,在WIX中必须有一个唯一的GUID来确定一个内容;

3. StructureFragment.wxs:控制安装时在用户计算机上进行的操作。

它们都位于源代码根目录的\src\TortoiseSVNSetup目录下。

知道了它们的作用,我们大概分析下思路。在FeaturesFragment中添加中文安装包的Features,然后在StructureFragment中声明该Features需要完成的工作(拷贝文件及修改注册表)。

修改配置文件步骤如下:

1. 在FeaturesFragment的Fragment配置节下添加:

<Feature Id="LanguagePack_zh_CN" Level="1" Title="LanguagePack_zh_CN" Description="Add LanguagePack_zh_CN" TypicalDefault="install" Absent="allow">

<ComponentRef Id="C__LanguagePack_zh_CN" />

<ComponentRef Id="C__zh_CN" />

<ComponentRef Id="C__RegistryLanguage" />

</Feature>

以上代码就声明了一个名为LanguagePack_zh_CN的Feature,并声明其包含了三个内容,若用户在安装时选择安装此Feature,则安装程序会到StructureFragment文件中找到相应的内容及操作。

2. 在StructureFragment文件中找到

<Directory Id="D__Languages" Name="Languages">

</Directory>

配置节,然后在其中添加如下代码:

<Component Id="C__LanguagePack_zh_CN" Guid="$(var.GuidLanguagePack_zh_CN)" Win64="$(var.Win64YesNo)">

<File Id="F__TortoiseBlame2052" Name="TortoiseBlame2052.dll" Source="..\..\bin\release\bin\LanguagePack_zh_CH\TortoiseBlame2052.dll" DiskId="1" />

<File Id="F__TortoiseIDiff2052" Name="TortoiseIDiff2052.dll" Source="..\..\bin\release\bin\LanguagePack_zh_CH\TortoiseIDiff2052.dll" DiskId="1" />

<File Id="F__TortoiseMerge2052" Name="TortoiseMerge2052.dll" Source="..\..\bin\release\bin\LanguagePack_zh_CH\TortoiseMerge2052.dll" DiskId="1" />

<File Id="F__TortoiseMerge_zh_CN" Name="TortoiseMerge_zh_CN.chm" Source="..\..\bin\release\bin\LanguagePack_zh_CH\TortoiseMerge_zh_CN.chm" DiskId="1" />

<File Id="F__TortoiseProc2052" Name="TortoiseProc2052.dll" Source="..\..\bin\release\bin\LanguagePack_zh_CH\TortoiseProc2052.dll" DiskId="1" />

<File Id="F__TortoiseSVN_zh_CN" Name="TortoiseSVN_zh_CN.chm" Source="..\..\bin\release\bin\LanguagePack_zh_CH\TortoiseSVN_zh_CN.chm" DiskId="1" />

</Component>

<Directory Id="D__zh_CN" Name="zh_CN">

<Directory Id="D__LC_MESSAGES" Name="LC_MESSAGES">

<Component Id="C__zh_CN" Guid="$(var.GuidSubversionMo)" Win64="$(var.Win64YesNo)">

<File Id="F__Subversion" Name="Subversion.mo" Source="..\..\bin\release\bin\LanguagePack_zh_CH\zh_CN\LC_MESSAGES\Subversion.mo" DiskId="1" />

</Component>

</Directory>

</Directory>

注:以上部分是设置在安装TortoiseSVN时,创建中文包文件夹,并将中文包所需DLL等拷贝至相应的目录。

其中:Source只的是我们准备文件时,将这些DLL存放的路径。编译生成MSI安装包时,将会到这个Source找到相应的文件,将他们压缩进MSI安装包。

 

<Component Id="C__RegistryLanguage" Guid="$(var.GuidRegistryLanguage)" Win64="$(var.Win64YesNo)">

<RegistryValue Root="HKCU" Key="Software\TortoiseSVN" KeyPath="yes" Name="LanguageID" Value="2052" Type="integer" />

</Component>

注:以上部分是在用户的注册表HKCU下,添加设置TortoiseSVN语言的键值。

 

3. 由于WIX添加内容时,必须有一个GUID,上面的代码中我们用到了“GuidLanguagePack_zh_CN、GuidSubversionMo、GuidRegistryLanguage” 所以必须在Includes.wxi中添加相应的GUID声明,代码如下:

<?define GuidLanguagePack_zh_CN="C9D757EE-F449-4c57-9351-14C95BD34708"?>

<?define GuidSubversionMo="CA29F083-DC3E-4524-944A-AAE68DEAF3D7"?>

<?define GuidRegistryLanguage="48916997-33F9-4b13-BF9E-87025C23744F"?>

上面加粗的文字,即为随机生成的GUID。

至此,WIX配置文件修改完毕,我们可以运行“Nant MSI”来生成这个中文安装包。然后会在源代码根目录“bin”文件夹下,找到我们生成的MSI安装包。

双击安装程序进行安装,可以在安装向导中,看到我们刚才自定义的“Language_zh_CN”的Feature,如下图所示:

clip_image006

一路“Next”安装下去,并重启计算机后,我们就可以使用中文版的TortoiseSVN了。

注:我们可以通过这个方法很方便地修改TortoiseSVN的安装包,达到我们需要的定制效果。

下面这段代码就是定制config文件的方法,有兴趣的可以看看。

<Directory Id="AppDataFolder" Name="AppDataFolder">

<Directory Id="Subversion" Name="Subversion">

<Component Id="C__CustomConfig" Guid="$(var.GuidCustomConfig)" Win64="$(var.Win64YesNo)">

<RegistryValue Root="HKCU" Key="Software\TortoiseSVN" KeyPath="yes" Name="ConfigCustomState" Value="1" Type="binary" />

<File Id="F__config" Name="config" Source="..\..\bin\release\bin\Config\config" DiskId="1"/>

<RemoveFolder Directory="Subversion" On="uninstall" Id="RemoveFolder_Subversion" />

</Component>

</Directory>

</Directory>

分享到:
评论

相关推荐

    SVN 安装包+中文插件

    在这个“SVN安装包+中文插件”中,包含了TortoiseSVN客户端和中文语言包。 TortoiseSVN是SVN的一个图形化界面工具,它集成在Windows资源管理器中,提供直观易用的界面来执行SVN操作。TortoiseSVN-1.14.1.29085-x64-...

    TortoiseSVN-1.8.3.24901-x64-svn-1.8.4英文64位安装包

    在“TortoiseSVN-1.8.3.24901-x64-svn-1.8.4英文64位安装包”中,我们主要关注的是它的版本信息和64位特性。 1. **版本信息**:TortoiseSVN 1.8.3.24901是这个安装包的具体版本号。版本号中的数字和点有特定含义,...

    TortoiseSVN

    TortoiseSVN是一款在Windows操作系统上广泛使用的版本控制系统客户端,尤其受到开发人员和团队的青睐。...通过选择不同版本的安装包,用户可以根据自己的系统环境和需求来定制最适合的版本控制系统。

    TortoiseSVN的1.8.8版本(x64)及汉化包

    2. **增强的用户体验**:界面更加友好,支持更多的自定义设置,使得用户可以根据自己的习惯定制工作环境。 3. **更强大的冲突解决工具**:当多人同时编辑同一文件时,TortoiseSVN提供了更直观的方式来解决冲突,用户...

    phpstydy+TortoiseSVN+redis+sublime安装包

    Sublime Text支持众多编程语言,并可以通过Package Control安装各种插件,定制个人开发环境。 这个压缩包的组合,旨在提供一个完整的开发环境,涵盖了Web开发中的主要环节:PHP运行环境(PHPStudy)、代码版本控制...

    TortoiseSVN-1.3.5.6804-svn-1.3.2.rar

    在安装TortoiseSVN 1.3.5.6804时,我们首先需要下载对应的安装包"TortoiseSVN-1.3.5.6804-svn-1.3.2.msi"。安装过程中,系统会引导用户进行一系列配置,包括选择语言、安装路径以及是否设置环境变量等。这些选项可以...

    TortoiseSVN的下载安装使用手册

    1. **下载安装包:**访问官方站点(https://tortoisesvn.net/downloads.html)下载最新版本的TortoiseSVN安装包。 2. **运行安装向导:**双击下载好的安装包,启动安装向导。 3. **选择安装位置:**默认情况下,安装...

    TortoiseSVN-1.11.1.28492-x64-svn-1.11.1(附带汉化包,打开即可使用)

    10. **强大的命令行支持**:对于高级用户,TortoiseSVN也提供了命令行工具,以满足更多定制化需求。 安装汉化包后,所有界面上的英文都会转换为简体中文,这对于中文用户来说,极大地提高了易用性和工作效率。汉化...

    TortoiseSVN中文参考手册

    2. **运行安装**:双击安装包,按照向导提示完成安装。 3. **选择组件**:在安装过程中,可以选择安装额外的组件,如TortoiseMerge(用于文件比较)和TortoiseBlame(用于代码审查)。 ##### 配置: 1. **设置语言*...

    svn 1.8.0.24401 最新安装包和汉化包

    这里提到的是svn 1.8.0.24401的安装包,这是一个较早但仍然流行的版本,对于那些依赖旧系统的用户来说可能是必要的。 TortoiseSVN是svn的一个图形化客户端,特别适合Windows用户使用。它集成了Windows资源管理器,...

    TortoiseSVN基本文档

    - 下载最新版本的TortoiseSVN安装包。 - 运行安装程序并按照提示完成安装过程。 - 可选安装语言包和拼写检查器以增强用户体验。 - **语言包**: 提供多语言支持,帮助不同地区的用户更好地理解和使用该软件。 - **...

    SVN安装包,SVN安装包

    4. 选择安装类型:默认的“标准”安装通常适合大多数用户,但也可以根据需要选择“自定义”进行定制安装。 5. 设置安装路径,可以选择默认或者自定义路径。 6. 选择组件:可以选择安装客户端工具(如TortoiseSVN)或...

    VisualSVN、TortoiseSVN 安装配置说明

    首先,我们需要下载安装包。服务器端选择VisualSVN Server,例如版本2.5.3,客户端则选择TortoiseSVN,如1.7.7.22907-win32-svn-1.7.5。这两个安装程序都是msi格式,可以直接运行。 **安装服务器端VisualSVN**: 1....

    SVN-v1.11.1安装包.zip

    它可以是命令行工具(如`svn`命令)或者图形化界面,如TortoiseSVN,它为用户提供友好的操作界面,方便进行版本控制操作,如添加、提交、更新、合并等。 3. **服务端**:SVN服务端通常指的是运行在服务器上的软件,...

    TortoiseSVN客户端说明(中文版)

    - **免费且开源**:作为一款开源软件,TortoiseSVN不仅免费提供,而且源代码公开,允许用户自由定制和扩展。 - **国际化**:支持多语言界面,包括中文,满足全球用户的使用需求。 **安装TortoiseSVN**: - **系统...

    svn中文安装包,svn

    "svn中文"意味着该安装包是为中文用户定制的,其中可能包含了中文语言包,使得用户界面和帮助文档都以中文显示。例如,提供的文件`LanguagePack_1.6.7.18415-win32-zh_CN.msi`就是TortoiseSVN的中文语言包,适用于...

    Joomla中如何构建Kunena安装包

    对于希望进一步定制和扩展Kunena Forum功能的开发者而言,掌握这一技能将大有裨益。 #### 六、参考资料 - [Apache Ant官方网站](https://ant.apache.org/) - [Joomla官方网站](https://www.joomla.org/) - [Kunena...

    maven安装包

    虽然TortoiseSVN是一个版本控制系统客户端,用于Subversion(SVN)仓库的交互,但在这个场景中,它似乎被误放进了"Maven安装包"。TortoiseSVN帮助开发者进行代码版本控制,与Maven的项目管理和构建功能是两个独立的...

    Tortoise源码

    TortoiseSVN-1.6.10.19898-win32-svn-1.6.12.msi 是TortoiseSVN的安装包,版本号为1.6.10,其中包含了Subversion的1.6.12版本。这个安装文件通常用于在Windows系统上安装TortoiseSVN,提供各种版本控制功能。在安装...

    Subversion版本控制工具.docx

    - **安装过程**:下载TortoiseSVN安装包并按照提示完成安装。 - **集成Shell菜单**:安装完成后,TortoiseSVN会自动集成到Windows资源管理器的右键菜单中。 ##### 2.2 文件导入SVN仓库 - **新建仓库**:首先需要...

Global site tag (gtag.js) - Google Analytics