在SharpDevolop中使用wix3製作中文安裝包
最近研究用SD3和wix3開發程式, 網上關於wix3的資源及教程真是少的可憐,而且大部分是英文的。對於我這種高中英文120多,大學英文七八十的人來說真的很艱難。本文參考了園子裡博友的文章,好了廢話不多說,正文如下:
【wix 是什麼】
Wix 是微軟的開源的做 msi 安裝包的工具。使用 xml 描述架構,經過編譯連結後,得到 msi 安裝包。整個過程跟寫個程式差不多。
【用到的軟體】
SharpDevelop: v3.0 c#IDE
Wix : 安裝包製作工具
mallow : 編寫 wix 檔案時的輔助工具,tallow 的增強版,幫助生成檔案列表
WixEdit : wix 檔案編輯器
GuidGen : 微軟的 guid 生成器,guid 在 wix 中佔有重要位置,需要頻繁用到
【開始】
SharpDevelop 中已經整合有 wix。我的版本是 v3.0,整合的 wix 是 3.0.4917.0 的。 wix3.0 已經發布,下載地址:http://sourceforge.net/projects/wix/files/。
在 SharpDevelop 中新建一個 setup 專案,選擇【WixUI Mondo】——這個是 wix 內建的幾個標準對話方塊專案之一。生成專案後,需要手工編輯預設的【files.wxs】和【setup.wxs】。
這2個檔案怎麼編輯呢?一堆的xml標籤,毫無頭緒啊~~呵呵,請看【典型結構】。
【典型結構】
wix 檔案是標準的 xml 檔案。任何文字編輯器都可以編輯。setup.wxs如下:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
Name="軟體"
Language="2052"
Version="1.0.0.0"
Codepage="936"
UpgradeCode="825487A7-C3F9-44G5-B543-BB87BW239FBB"
Manufacturer="公司">
<Package Description="#Description"
Comments="Comments"
InstallerVersion="200"
Compressed="yes"/>
<!--
Source media for the installation.
Specifies a single cab file to be embedded in the installer's .msi.
-->
<Media Id="1" Cabinet="contents.cab" EmbedCab="yes" CompressionLevel="high"/>
<!--檢測必備環境-->
<PropertyRef Id="NETFRAMEWORK20" />
<Condition Message="您的計算機必須安裝.NET Framework 2.0,否則本軟體無法使用 ([NETFRAMEWORK20])">
Installed OR NETFRAMEWORK20
Condition>
<!--檢測必備環境-->
<!-- Installation directory and files are defined in Files.wxs -->
<Directory Id="TARGETDIR" Name="SourceDir">
<!--開始選單-->
<Directory Id="ProgramMenuFolder">
<Directory Id="ShortcutMenuFolder" Name="軟體" />
Directory>
<!--開始選單結束 -->
<!--桌面快捷方式 -->
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="DesktopSpider" Guid="aede1637-df5a-4c41-94b6-f077d03e5372">
<RegistryKey Root="HKCU" Key="Software\AAA\desktop">
<RegistryValue Value="SPIDERClient" Type="string" KeyPath="yes" />
RegistryKey>
<Shortcut Id="shortcut.desk" Directory="DesktopFolder" Name="軟體" Target="[INSTALLDIR]ruanjian.exe" WorkingDirectory="INSTALLDIR" IconIndex="0"/>
Component>
Directory>
<!--桌面快捷方式結束 -->
Directory>
<!--Targetdir 結束 -->
<!--開始選單設定 -->
<DirectoryRef Id="ShortcutMenuFolder">
<Component Id="ApplicationShortcut" Guid="C919F5ED-D2B3-42E8-9F7C-63269274FE79">
<Shortcut Id="ApplicationStartMenuShortcut" Name="軟體" Target="[INSTALLDIR]ruanjian.exe" WorkingDirectory="INSTALLDIR" />
<Shortcut Id="UninstallProduct" Name="解除安裝" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" />
<RemoveFolder Id="ShortcutMenuFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\軟體" Name="installed" Type="integer" KeyPath="yes" Value="1" />
Component>
DirectoryRef>
<!--開始選單 -->
<Feature Id="Complete"
Title="軟體"
Description="**軟體"
Level="1"
ConfigurableDirectory="INSTALLDIR">
<ComponentRef Id="ExecutableFile"/>
<ComponentRef Id="MyComponent"/>
<ComponentRef Id="ApplicationShortcut"/>
<ComponentRef Id="DesktopSpider"/>
Feature>
<!--
Using the Wix UI library
WixUI_Mondo includes the full set of dialogs:
welcome
license agreement
setup type (typical, custom, and complete)
feature customization
directory browse
disk cost.
Maintenance-mode dialogs are also included.
Use WixUI_Mondo when you have some of your product's features
are not installed by default and there is a meaningful
difference between typical and complete installs
-->
<UIRef Id="WixUI_Mondo"/>
Product>
Wix>
需要注意到是:
所有的 GUID 都要自己生成
“公司”、“軟體”換成自己的
以下是 files.wxs基本內容
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="TARGETDIR">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="INSTALLDIR" Name="軟體名">
<Component Id="MyComponent" Guid="5432EBE2-66E1-48F0-A0BF-A256479B168E" DiskId="1">
<File Id="LicenseFile" Name="license.rtf" Source="license.rtf"/>
Component>
<Component Id='ExecutableFile' DiskId='1' Guid='11111111-1111-1111-1111-111111111192'>
<File Id='ruanjian_exe' Name='ruanjian.exe' Source="目錄/ruanjian.exe" />
Component>
Directory>
Directory>
DirectoryRef>
Fragment>
Wix>
【本地化】
我們都習慣了安裝程式有個嚮導,一步一步的進行。不過預設生成的嚮導——比如我用的這個【WxUI Mondo】——介面文字是英文的,我們當然希望是中文的。wix 提供了中文的資原始檔。在使用light.exe連結時,增加命令列引數 -loc xxx.wxl 即可。不過在 SharpDevelop 中要怎麼做呢?
注意:以下內容摘自博友部落格,本部落格內上面的程式碼已經修改。
在下一步之前,要先修改 setup.wxs 中的幾個地方,否則是不能支援中文的。
修改前 | 修改後 |
---|---|
Language="1033" | Language="2052" |
Codepage="936" |
我們可以下載 3.0 的原始碼包,解開後,可以在原始碼目錄下的 src\ext\UIExtension\wixlib 得到 3.0 的 wixui_en-us.wxl 英文語言檔案;再下載 2.0 的 wixui_zh-cn.wxl 中文語言包,參照 wixui_en-us.wxl 稍微修改一下:
3.0 | 2.0 | 修改後 |
---|---|---|
| ||
…… | …… | 所有的 overridalbe 都要加上 |
然後將檔案 wixui_zh-cn.wxl 加入到 SharpDevelop 的 setup 專案中去,檔案的【Build Action】選擇【EmbeddedResource】即可。
不過編譯的時候還會報錯,因為 wix 3.0 和 2.0 的結構不一樣,報錯的原因是有幾個地方 3.0 新增的,修改好 wixui_zh-cn.wxl 就行了。中文翻譯可以自己寫。
修改前 | 修改後 |
---|---|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-609333/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用NSIS製作安裝包
- 定製gridview使其在listview中當作item使用View
- Installshield製作更新安裝包
- 教你如何製作程式安裝包
- 升級安裝包的製作
- 在遊戲製作中渲染公式推導(轉)遊戲公式
- 在swoole中製作一款仿製laravel的框架Laravel框架
- mac上好玩的策略遊戲魔法門之英雄無敵5中文安裝包Mac遊戲
- 使用CheckInstall從原始碼製作RPM安裝包原始碼
- 在遊戲製作中的地形渲染terrainrender(轉)遊戲AI
- DMG Canvas 4.0.7 DMG安裝包製作Canvas
- InstallShield製作升級安裝包
- 製作iPhone PXL安裝包的方法iPhone
- 在vue專案中jsPlumb製作流程圖,拖拽複製使用 jquery 和 jquery UIVueJS流程圖jQueryUI
- InstallShield中如何製作靜默安裝包-IntallScript或InstallScript MSI工程型別型別
- Wolfram Mathematica 13Mac版中文安裝包Mac
- 在Android中製作移動的漸變背景Android
- 在Excel中製作下拉選單的3種方法Excel
- Debian安裝包的簡單製作
- 7z製作自解壓安裝包
- 在DaVinci Resolve Studio Mac中如何使用關鍵幀製作動畫Mac動畫
- 在 Fedora 中安裝替代版本的 RPM 包
- 在PowerPoint中製作3D圖形的方法3D
- NodeJs 在window中安裝使用NodeJS
- VS2010 製作安裝包
- linux製作安裝包的兩種方法Linux
- 抖音GIF表情包製作教程 如何製作QQ動態表情包
- Centos7.9、Ubuntu作業系統圖文安裝CentOSUbuntu作業系統
- Java中的包裝類Java
- Azure OpenAI在遊戲NPC和製作場景中的應用OpenAI遊戲
- Rhino 8 中文安裝包「犀牛 Rhino 8破解新功能」
- 在docker中安裝mysql並搭建主從複製DockerMySql
- 在mac 中安裝跟使用git flowMacGit
- 將PL/SQL程式碼封裝在靈巧的包中SQL封裝
- 在debian 12 中安裝virtualbox擴充套件包套件
- Unity製作遊戲中的場景Unity遊戲
- linux/OSX中“DD”命令製作ISO映象作業系統安裝U盤Linux作業系統
- 在Expression Blend中製作側面為梯形的類稜柱體Express