日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

wix图片导入设置_奇葩史的奇葩事 | [译]:WiX Toolset入门——内置的WixUI界面使用配置...

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wix图片导入设置_奇葩史的奇葩事 | [译]:WiX Toolset入门——内置的WixUI界面使用配置... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[譯]:WiX Toolset入門——內置的WixUI界面使用配置

2016年11月8日 13:30:00

博客分類:

官方教程

使用內置WixUI對話框

WixUI對話框庫主要包含以下幾種對話框集合,它們提供了我們常見的向導式設置的用戶界面。

怎樣為產品安裝程序添加內置WixUI對話框

假設你已經有一個可用的安裝程序,僅僅缺少安裝用戶界面,參照以下步驟為其添加內置的WixUI對話框:

添加UIRef元素到安裝程序代碼中,并將其Id設置為與上述對話框設置類型列表中的一個相同的名稱。示例如下:

在鏈接器(light.exe)中,使用-ext和-cultures設置來引用WixUIExtension,示例如下:

light -ext WixUIExtension -cultures:en-us Product.wixobj -out Product.msi

注:如果你在Visual Studio中使用Wix,你可以通過添加引用的方式處理以上步驟。其步驟如下:

在Visual Studio中打開WiX項目

在解決方案管理器中右擊項目下的References,然后選擇添加引用

在列表中選擇WixUIExtension.dll,然后點擊添加

點擊確定,關閉添加引用對話框

提示

個人經驗:如果僅僅按照上面步驟處理,在安裝過程中會提示錯誤,錯誤代碼為2819;

具體處理方案見:關于使用WiXUI后遇到錯誤2819問題解決

內置的WixUI對話框配置亦是可以自定的——從UI界面圖片到添加和刪除 用戶對話框。更多內容見下節。

自定義內置WixUI對話框

內置WixUI對話框自定義設置包括以下內容:

指定特定產品的使用許可協議文件

定制產品獨有的安裝UI界面

向ExitDlg對話框中添加可選的復選框和可選文本

自定義內置對話框中的顯示文本

修改內置對話框集合的UI序列

向內置對話框集合中添加自定義對話框

指定許可文件

WixUIExtension.dll包含一個默認的使用許可協議。要指定自己產品的許可協議,則通過指定VixVariable內容來覆蓋默認協議。要指定的內容包括將WixVariable的Id設置為WixUILicenseRtf,然后在Value屬性中指定你自己的RTF文件格式的許可文件。示例如下:

或者,你可以在使用light時通過-d參數指定變量:

light -ext WixUIExtension -cultures:en-us -dWixUILicenseRtf=bobpl.rtf Product.wixobj -out Product.msi

指定的文件必須包含在目錄中,light會查詢此文件。

現有一個已知的問題:富文本控件在顯示許可文件時,可能會顯示空白,只有用戶在控件內向下滾動后才能顯示文本。此問題通常是由復雜的RTF內容導致(如在Microsoft Word保存生成的RTF文件)。如果在自己的安裝界面中遇到此問題,如下的解決方案可以解決大多數的情況:

用寫字板打開RTF文件,然后保存,與此去除復雜的RTF內容。保存之后,重新生成安裝包。 ——注:最好是另存為,如果單純的保存,可能無法保證格式真正轉化,本人使用文本轉rtf時就糾結了好久。

使用非WixUI_Minimal集合的對話框。此問題通常是因為,在安裝啟動后的第一個界面為許可協議,而它使用WixUI_Minimal對話框集合。 —— 此處處理方式,在學到此處時,可能還不知道怎么處理,需要進一步學習

替換默認安裝圖片

WixUI對話框庫中含有歡迎界面和完成界面的背景圖片,以及其他界面頂部的橫幅圖片。你用你自己的圖片替換以此推廣自己產品的品牌。要替換默認圖片,在WiX變量中指定圖片文件名稱即可,類似于指定許可文件一樣:

變量名

描述

尺寸

WixUIBannerBmp

頂部橫幅

493*58

WixUIDialogBmp

歡迎和完成窗體的背景圖片

493*312

WixUIExclamationIco

WaitForCostingDlg界面中的感嘆號圖標

32*32

WixUIInfoIco

取消和錯誤提示框中的提示信息圖標

32*32

WixUINewIco

BrowseDlg界面中的按鈕圖像

16*16

WixUIUpIco

BrowseDlg界面中的按鈕圖像

16*16

自定義ExitDlg窗體

ExitDlg是一個內置窗體,它在安裝成功結束后顯示。ExitDlg窗體支持顯示可選的自定義文本和一個可選的勾選框。

要在ExitDlg中顯示可選文本,則為WIXUI_EXITDIALOGOPTIONALTEXT屬性設置字符串值。示例如下:

可選文本有如下性能:

可選文本按原樣顯示設置文本,不會解析方括號等包含的屬性,如[ProductName]。如果你需要在可選文本里包括屬性,你必須設置一個自定義操作來設置屬性。示例如下:

NOT Installed

長字符串會自動換行顯示

可選文本只在初始安裝時顯示,不會在修復模式或卸載時顯示。

自定義內置對話框文本

所有WixUI內置對話框中的文本都可以在需要的時候重寫。為此,您需要向WiX本地化(.wxl)文件中添加具有相同Id值的字符串來進行覆蓋。你可以在WixUI_en-us.wxl中看到在WiX源碼中WixUI字符串的Id值。

例如,重新WelcomeDlg上的描述,你可以添加如下內容到項目的.wxl文件中:

This is a custom welcome message. Click Next to continue or Cancel to exit.

修改內置對話框集合中的UI序列

內置對話框集合中的默認順序是可以修改的。為此,你必須從相應對話框集合定義的WiX源碼中拷貝內容到項目中。然后,你需要修改元素來定義在你的安裝過程中對話框的顯示順序。

例如,把許可協議對話框從WixUI_InstallDir對話框集合中移除,你可以進行如下設置:

從WiX源碼中拷貝WixUI_InstallDir.wxs文件里的所有內容到你的項目中。

移除用于添加上一步下一步事件的元素

修改用于指定WelcomeDlg的下一步的元素 —— 將指向從LicenseAgreementDlg改為InstallDirDlg,示例如下:

1

修改用于指定InstallDirDlg上一步的元素 —— 將指向從LicenseAgreementDlg改為WelcomeDlg,示例如下:

1

注:以上內容,需要將拷貝過來的UI元素的Id修改,然后讓之前添加的UIRef的Id對應上,以此避免Id與系統原有WixUI_InstallDir里的Id沖突。示例如下:

首先將:

改為:

然后將Product元素下的:

改為:

為內置對話框集合插入自定義對話框

你可以向內置對話框序列中添加自定義的對話框。為此,你需要為新的對話框定義一個新的元素。然后,從WiX源碼中拷貝你想自定義的對話框的所有內容。然后,修改元素來定義對話框序列顯示。

例如,需要在WelcomeDlg和LicenseAgreementDlg中插入一個名為SpecialDlg的對話框—— 此處使用WixUI_InstallDir對話框集合。我們需要進行如下步驟:

在你項目中的元素下定義SpecialDlg的外觀。

從WiX源碼中拷貝WixUI_InstallDir.wxs文件里的所有內容到你的項目中。

為SpecialDlg添加上一步下一步操作,即添加元素定義,示例如下:

1

1

修改用于指定WelcomeDlg的下一步的元素 —— 將指向從LicenseAgreementDlg改為SpecialDlg,示例如下:

1

修改用于指定LicenseAgreementDlg上一步的元素 —— 將指向從WelcomeDlg改為SpecialDlg,示例如下:

1

關于在UI元素下添加SpecialDlg,由于官網未給出此操作示例,故下面添加一個簡單的示例代碼:

析:其中Dialog相關內容見:原文:Dialog Element。另需要添加Next和Back兩個按鈕是因為我們在上面需要上一步下一步操作。

WixUI本地化處理

注:官網內容為利用命令行處理本地化,但在此文末會添加利用Visual Studio處理。

使用已翻譯的UI字符串

WixUIExtension包含一系列的WiX本地化文件(.wxl)—— 為多種語言翻譯了UI文本、錯誤提示以及進度提示字符串。要指定安裝包的UI語言,可以在鏈接命令時傳入語言參數,示例如下:

light -ext WixUIExtension -cultures:fr-FR Product.wixobj -out Product.msi

WixUIExtension中翻譯了以下語言版本:

語言-Language

國家或地區-Location

語言代碼-Culture code

WXL的對應文件名-WXL file

Arabic

Saudi Arabia

ar-SA

WixUI_ar-SA.wxl

Bulgarian

Bulgaria

bg-BG

WixUI_bg-BG.wxl

Catalan

Spain

ca-ES

WixUI_ca-ES.wxl

Croatian

Croatia

hr-HR

WixUI_hr-HR.wxl

Czech

Czech Republic

cs-CZ

WixUI_cs-CZ.wxl

Danish

Denmark

da-DK

WixUI_da-DK.wxl

Dutch

Netherlands

nl-NL

WixUI_nl-NL.wxl

English

United States

en-US

WixUI_en-US.wxl

Estonian

Estonia

et-EE

WixUI_et-EE.wxl

Finnish

Finland

fi-FI

WixUI_fi-FI.wxl

French

France

fr-FR

WixUI_fr-FR.wxl

German

Germany

de-DE

WixUI_de-DE.wxl

Greek

Greece

el-GR

WixUI_el-GR.wxl

Hebrew

Israel

he-IL

WixUI_he-IL.wxl

Hindi

India

hi-IN

WixUI_hi-IN.wxl

Hungarian

Hungary

hu-HU

WixUI_hu-HU.wxl

Italian

Italy

it-IT

WixUI_it-IT.wxl

Japanese

Japan

ja-JP

WixUI_ja-JP.wxl

Kazakh

Kazakhstan

kk-KZ

WixUI_kk-KZ.wxl

Korean

Korea

ko-KR

WixUI_ko-KR.wxl

Latvian

Latvia

lv-LV

WixUI_lv-LV.wxl

Lithuanian

Lithuania

lt-LT

WixUI_lt-LT.wxl

Norwegian (Bokm?l)

Norway

nb-NO

WixUI_nb-NO.wxl

Polish

Poland

pl-PL

WixUI_pl-PL.wxl

Portuguese

Brazil

pt-BR

WixUI_pt-BR.wxl

Portuguese

Portugal

pt-PT

WixUI_pt-PT.wxl

Romanian

Romania

ro-RO

WixUI_ro-RO.wxl

Russian

Russia

ru-RU

WixUI_ru-RU.wxl

Serbian (Latin)

Serbia and Montenegro

sr-Latn-CS

WixUI_sr-Latn-CS.wxl

簡體中文-Simplified Chinese

China

zh-CN

WixUI_zh-CN.wxl

Slovak

Slovak Republic

sk-SK

WixUI_sk-SK.wxl

Slovenian

Solvenia

sl-SI

WixUI_sl_SI.wxl

Spanish

Spain

es-ES

WixUI_es-ES.wxl

Swedish

Sweden

sv-SE

WixUI_sv-SE.wxl

Thai

Thailand

th-TH

WixUI_th-TH.wxl

Traditional Chinese

Hong Kong SAR

zh-HK

WixUI_zh-HK.wxl

Traditional Chinese

Taiwan

zh-TW

WixUI_zh-TW.wxl

Turkish

Turkey

tr-TR

WixUI_tr-TR.wxl

Ukrainian

Ukraine

uk-UA

WixUI_uk-UA.wxl

使用不同語言設置創建多個安裝包

你可以通過調用一次cancle然后多次調用light來為不同語言創建一系列不同安裝語言的安裝包,示例如下:

candle Product.wxs

light -ext WixUIExtension -cultures:en-us Product.wixobj -out Product_en-us.msi

light -ext WixUIExtension -cultures:fr-fr Product.wixobj -out Product_fr-fr.msi

light -ext WixUIExtension -cultures:de-de Product.wixobj -out Product_de-de.msi

light -ext WixUIExtension -cultures:it-it Product.wixobj -out Product_it-it.msi

light -ext WixUIExtension -cultures:ja-jp Product.wixobj -out Product_ja-jp.msi

light -ext WixUIExtension -cultures:pl-pl Product.wixobj -out Product_pl-pl.msi

light -ext WixUIExtension -cultures:ru-ru Product.wixobj -out Product_ru-ru.msi

light -ext WixUIExtension -cultures:es-es Product.wixobj -out Product_es-es.msi

使用已翻譯的錯誤和進度提示文本

默認情況下,WixUI不會包含任何翻譯的錯誤或進度提示元素。你可以通過添加WixUI_ErrorProgressText元素來進行引用:

利用Visual Studio來處理以上步驟

內容為處理中文安裝包

將WixUI_zh-CN.wxl文件添加到安裝包項目里,如果要添加其他語言,將其他語言的wxl文件加入到項目中即可

重新生成安裝包即可

注意:在此處:

如果你需要同時生成多個語言的安裝時,Product.wxs中不可以出現中文,即公用的wxs文件中需要全部為英文;

但是如果你只需要一個中文的安裝包,你可以在Product.wxs中使用中文,但需要注意的是,你需要把所有其他語言的wxl文件刪除,以此避免出現CodePage錯誤問題,即語言匹配問題。

沒有評論

總結

以上是生活随笔為你收集整理的wix图片导入设置_奇葩史的奇葩事 | [译]:WiX Toolset入门——内置的WixUI界面使用配置...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。