3 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
自動(dòng)guids和默認(rèn)屬性值
除了Bob Arnson的建議:
維克斯的最新版本允許的GUID是自動(dòng)生成的幾件事情,最顯著的組件GUID。它還包括包,產(chǎn)品和補(bǔ)丁代碼。
它還允許從顯式定義中跳過一些甚至大多數(shù)屬性值,因?yàn)樗鼈冎械拇蠖鄶?shù)可以默認(rèn)為可預(yù)測(cè)的值。有關(guān)示例,請(qǐng)參閱下面的代碼段。
自動(dòng)生成組件GUID是可能的,因?yàn)榻M件GUID在創(chuàng)建后應(yīng)保持不變,除非安裝路徑已更改 - 這在此stackoverflow帖子中有所描述。因此,Wix 根據(jù)目標(biāo)路徑和其他因素計(jì)算GUID。
產(chǎn)品,包和補(bǔ)丁代碼通常可以隨機(jī)創(chuàng)建,因?yàn)樗鼈儜?yīng)該是唯一的。
請(qǐng)注意,升級(jí)代碼是特殊的 - 不應(yīng)自動(dòng)生成。在某些情況下,通常希望在版本之間保持穩(wěn)定,甚至在軟件的不同版本和語言之間保持穩(wěn)定 - 這取決于應(yīng)用程序設(shè)計(jì)和版本的實(shí)現(xiàn)方式(您可以使用不同的升級(jí)代碼并仍然實(shí)施重大升級(jí),但升級(jí)表變得復(fù)雜)。
根據(jù)經(jīng)驗(yàn),升級(jí)代碼標(biāo)識(shí)“ 相關(guān)產(chǎn)品系列 ”,產(chǎn)品代碼標(biāo)識(shí)某種安裝版本,包代碼標(biāo)識(shí)唯一文件。根據(jù)定義,具有相同包代碼的兩個(gè)文件被視為同一文件(這可能是神秘錯(cuò)誤 - 確保始終自動(dòng)生成包代碼)。
有關(guān)自動(dòng)生成的GUID的詳細(xì)信息,請(qǐng)查看Wix文檔。
簡(jiǎn)化的Wix XML源文件
正確使用這些自動(dòng)生成的GUID可以顯著簡(jiǎn)化您的Wix源文件:
<!-- Sample guid below, do not copy paste --><Component Id="File.dll" Guid="{12345678-1234-1234-1234-123456789ABC}"> <File Id="File.dll" Name="File.dll" KeyPath="yes" Source="..\File.dll" /></Component>
與
<Component> <File Source="..\File.dll" /></Component>
總之,組合自動(dòng)的GUID和默認(rèn)屬性值產(chǎn)生是維克斯XML源文件更短和更容易閱讀由于去掉了不少“噪音” -這可以說是使他們不容易出錯(cuò):
terser源文件更易于維護(hù)且不易出錯(cuò),因?yàn)楦菀卓吹絛iff工具的更改和文本越少,錯(cuò)誤就越少隱藏
同樣,由于所有屬性的更新不完整,現(xiàn)有XML元素的復(fù)制和粘貼可能導(dǎo)致難以發(fā)現(xiàn)錯(cuò)誤。屬性更少,錯(cuò)誤更少。當(dāng)“手動(dòng)”使用Wix(不使用XML生成器)時(shí),我會(huì)復(fù)制并粘貼很多。請(qǐng)注意,Wix編譯器和鏈接器會(huì)捕獲大多數(shù)錯(cuò)誤,但錯(cuò)誤仍然可以隱藏。
然后,可以從編譯器和鏈接器自動(dòng)神奇地拾取對(duì)默認(rèn)值的任何更改,使它們更容易傳播到使用Wix構(gòu)建的各處的MSI文件。保持源文件盡可能簡(jiǎn)單總是好的,但并不簡(jiǎn)單
重寫的默認(rèn)值在源文件中也很突出,您可以添加注釋來解釋為什么需要非默認(rèn)值
其他Wix提示在這里,雖然文章可能有點(diǎn)過時(shí)。
- 3 回答
- 0 關(guān)注
- 822 瀏覽
添加回答
舉報(bào)