3 回答

TA貢獻1815條經驗 獲得超13個贊
自動guids和默認屬性值
除了Bob Arnson的建議:
維克斯的最新版本允許的GUID是自動生成的幾件事情,最顯著的組件GUID。它還包括包,產品和補丁代碼。
它還允許從顯式定義中跳過一些甚至大多數屬性值,因為它們中的大多數可以默認為可預測的值。有關示例,請參閱下面的代碼段。
自動生成組件GUID是可能的,因為組件GUID在創建后應保持不變,除非安裝路徑已更改 - 這在此stackoverflow帖子中有所描述。因此,Wix 根據目標路徑和其他因素計算GUID。
產品,包和補丁代碼通??梢噪S機創建,因為它們應該是唯一的。
請注意,升級代碼是特殊的 - 不應自動生成。在某些情況下,通常希望在版本之間保持穩定,甚至在軟件的不同版本和語言之間保持穩定 - 這取決于應用程序設計和版本的實現方式(您可以使用不同的升級代碼并仍然實施重大升級,但升級表變得復雜)。
根據經驗,升級代碼標識“ 相關產品系列 ”,產品代碼標識某種安裝版本,包代碼標識唯一文件。根據定義,具有相同包代碼的兩個文件被視為同一文件(這可能是神秘錯誤 - 確保始終自動生成包代碼)。
有關自動生成的GUID的詳細信息,請查看Wix文檔。
簡化的Wix XML源文件
正確使用這些自動生成的GUID可以顯著簡化您的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>
總之,組合自動的GUID和默認屬性值產生是維克斯XML源文件更短和更容易閱讀由于去掉了不少“噪音” -這可以說是使他們不容易出錯:
terser源文件更易于維護且不易出錯,因為更容易看到diff工具的更改和文本越少,錯誤就越少隱藏
同樣,由于所有屬性的更新不完整,現有XML元素的復制和粘貼可能導致難以發現錯誤。屬性更少,錯誤更少。當“手動”使用Wix(不使用XML生成器)時,我會復制并粘貼很多。請注意,Wix編譯器和鏈接器會捕獲大多數錯誤,但錯誤仍然可以隱藏。
然后,可以從編譯器和鏈接器自動神奇地拾取對默認值的任何更改,使它們更容易傳播到使用Wix構建的各處的MSI文件。保持源文件盡可能簡單總是好的,但并不簡單
重寫的默認值在源文件中也很突出,您可以添加注釋來解釋為什么需要非默認值
其他Wix提示在這里,雖然文章可能有點過時。
- 3 回答
- 0 關注
- 826 瀏覽
添加回答
舉報