我們正在使用Inno Setup,並計劃將其替換爲WiX。但是當評估和玩弄WiX時,我覺得聲明式方式與編程式設置解決方案相比有一些侷限性。Wix#WixSharp與WiX相比的經驗
此外我發現WiX文檔相當稀少。所以我遇到了Wix#(WixSharp),它承諾以編程方式通過用C#編寫的腳本文件來創建WiX源代碼。
然而,我們對一些非常小的公司甚至是「單人秀」都有一些負面經歷。因此,我只是想問一下關於Wix#(WixSharp)的經驗,或者其他更好的選擇。你能報告一些優點或限制嗎?
我們正在使用Inno Setup,並計劃將其替換爲WiX。但是當評估和玩弄WiX時,我覺得聲明式方式與編程式設置解決方案相比有一些侷限性。Wix#WixSharp與WiX相比的經驗
此外我發現WiX文檔相當稀少。所以我遇到了Wix#(WixSharp),它承諾以編程方式通過用C#編寫的腳本文件來創建WiX源代碼。
然而,我們對一些非常小的公司甚至是「單人秀」都有一些負面經歷。因此,我只是想問一下關於Wix#(WixSharp)的經驗,或者其他更好的選擇。你能報告一些優點或限制嗎?
維克斯#看起來像一個改善良好的下注「明年將會」;見下文。並且請注意,自定義操作現在在Wix#中非常簡單。
從這篇文章: http://www.codeproject.com/Articles/31407/Wix-WixSharp-managed-interface-for-WiX
在2014年7月維克斯#是在更寬鬆的MIT許可重新發布的,它現在託管在CodePlex上。 https://wixsharp.codeplex.com/
2014年8月Wix#的用戶界面擴展已發佈,並在此CodeProject文章中描述:「Wix#(WixSharp)UI擴展」。
http://www.codeproject.com/Articles/804584/Wixsharp-WixSharp-UI-Extensions
新Wix#功能出現的事實預示着產品的良好預兆。
由於Wix#是基於WiX和Windows Installer技術構建的,因此它只能執行WiX中可能的操作。當Wix#耗盡氣體時... WiX可以執行很多Wix#C#語法中無法直接提供的內容,所以您通常可以直接使用WiX XML技術來縮小差距。另請參閱我的答案,以瞭解更多使Wix#生成.wxs XML,然後包括其他WiX XML代碼以及調用Candle和Light將生成的組合XML構建到MSI中的其他示例。 Programatically building an MSI
下面是我迄今爲止所經歷的WiX和Wix#優點和缺點的快速,非詳盡的列表。
維克斯/維克斯#優點:
維克斯/維克斯#缺點
WiX Pros
WiX的缺點
維克斯#優點
維克斯#缺點
我會說,在NSX和過去一代基於腳本的安裝程序(例如,老版本的Wise版本)中,很顯然,在WiX/Wix#中使用簡單的&在WiX/Wix中需要額外的研究和創造性總而言之,我認爲Wix#是一種成長技術,是現在和將來使用的一種安全賭注。最糟糕的情況是,你仍然有你的。wxs文件,並且可以轉換爲使用直接的WiX XML方法來構建安裝程序,並且您仍然可以從Wix#time投資中獲得價值。
最新更新的常見任務安裝
爲一體的維克斯#產品一月2015參見:https://wixsharp.codeplex.com/releases/view/610843][1]
編輯添加2015年1月發佈的一些有用功能列表。雖然以前大部分這些事情都是「可能的」,但現在它們更加平滑。例如,直接簡單地導入和使用.reg文件(與在C#中手動編碼註冊表項)並且仍然可以獲得註冊表項的免費「卸載」功能,這是一項巨大的生產力提升。 – Developer63 2015-01-22 03:43:04
我使用了「導入.reg文件」功能,它工作得很好。但是,我想將導入的.reg文件中的註冊表設置分配給特定的Wix/Wix#「功能ID」,例如,基本安裝獲取一組.reg條目,全功能安裝獲取基本條目以及一些額外的第二個.reg文件中的條目。爲此提交了請求,開發人員表示爲即將發佈的版本開展工作。 – Developer63 2015-02-21 03:13:54
Wix#很不錯,有很多樣品。 – 2016-05-05 10:36:45
WiX已經有相當長的一段時間了,並且有很多社區支持。我一直在做安裝(在我的業餘時間:)大約8年,並且從未發現任何我在WiX中無法做到的理由。
這是我第一次看到WixSharp。我的第一反應是目前它的穩定性是0.1.42。我也很關心在WixSharp中實際實現了多少MSI模式。它看起來很有趣,但是我更喜歡XML文件。我真的沒有看到在C#中做任何優勢。
我想在設置過程中執行一些自定義操作,並且發現它在Wix和I中並不舒服希望我會找到一種更好的方式來直接在C#中使用WixSharp實現自定義操作。您是否必須執行自定義操作,如啓動服務或檢查更復雜或更復雜的條件?你如何處理Wix? – MrCube 2012-04-17 07:18:36
對於Dan Vallejo,對我來說,使用C#比使用XML更容易。對於已經知道WiX XML的人來說,這並不重要。 Wix#/ C#的另一個優點是安裝程序代碼的可讀性。我和我們的服務器管理員一起走過Wix#代碼,向他們展示安裝程序(.NET COM Interop註冊表項等)中的內容,他們能夠理解Wix#代碼,並因此感到舒適地運行他們是管理員的服務器上的安裝程序。 – Developer63 2014-12-17 01:05:02
@MrCube,到目前爲止,我還沒有*有*在我的安裝程序中執行重要的自定義操作。我在一個安裝程序中包含了一個簡單的自定義操作shell,並發現在Wix#installer中包含自定義操作非常簡單。請參閱http://www.codeproject.com/Articles/31407/Wix-WixSharp-managed-interface-for-WiX上的CodeProject文章中的Wix#Custom Action示例。 Wix#安裝文件夾中還有一個Custom Action示例,位於文件Samples \ AllInOne \ MyAppWix.cs中。 – Developer63 2014-12-17 01:19:39
奧列格寫的原來的CsScript自2004年以來一直存在。 https://github.com/oleg-shilo/cs-script/wiki我喜歡它自己的外觀 – 2016-10-02 09:03:01