2010-02-26 56 views
2

當我使用安裝來提供產品密鑰驗證時,發生了一個具有挑戰性的情況。我不得不使用C++ unmanaged code to validate the key。實際上,我們有用C#編寫的主要驗證邏輯,我必須創建一個混合項目。問題並沒有因此而停止,而是繼續。由於我使用VC++代碼,因此希望至少將VC++運行時可再發行組件安裝在客戶機中。因爲這些問題,我想放棄將我們的安裝遷移到Wix的計劃。在Wix中使用DTF編寫的有趣的自定義操作

但我知道有一個很好很酷的功能,DTF在Wix中可用來集成任何類型的行爲在C#中。我使用它,可以在幾個小時內集成密鑰驗證,直到現在它在我6個月之前實施的所有客戶端機器上工作正常。

您對DTF有任何有趣的時刻或有很好的體驗嗎?

回答

1

我已經寫了幾個.NET的CA支持我們基於WiX的安裝:

  1. 託管包裝周圍HTTPAPI.DLL - 支持在部署WCF服務使用創建IP /端口綁定,SSL和HTTP URL訪問控制列表。我打算把這個變成一個Wix Extension。學習如何正確處理回滾等非常有趣。

  2. SSL選取器對話框,顯示系統上的所有SSL證書並允許您選擇一個。

  3. SQL Server瀏覽器對話框 - 讓您瀏覽您的網絡以查找SQL Server,然後瀏覽SQL Server for Databases。可選使用模擬。這是爲了製作連接字符串。

  4. 我正在編寫一組使用Microsoft.Web.Administration程序集在IIS 7上進行Web應用程序本地安裝(不需要安裝IIS 6元數據庫兼容性功能)的CA的過程。

+0

重點4:您是否知道Wix3.5將正確支持IIS 7而不需要IIS 6元數據庫兼容性? – 2010-07-23 11:33:44

1

首先,C#/ DTF自定義操作仍然是自定義操作(這裏沒有魔法:-)),因此您應該遵循所有與這種類型相關的各種CA準則。它通過抽象高級精心設計的類中的低級API來簡化大多數MSI任務。另外,請記住,只有在目標計算機安裝了.NET(或將其作爲先決條件安裝)的情況下,纔可以使用託管代碼CA.最後,與WiX工具集一起發佈的dtf.chm文檔有一些簡單但不言自明的例子。

希望這會有所幫助。

+0

嚴,感謝您的回覆。我完全同意你的觀點。我擔心的是爲自定義操作處理未託管的代碼,DTF使用託管代碼替換它,並提供了非常靈活的選項,就像您提到的設計良好的類一樣。當然,我們需要將.NET安裝在一臺機器上,但現在大多數Windows操作系統默認都運行.NET,它不應該成爲問題,而不是安裝VCRuntime可再發行組件。如果他們在安裝過程中遇到任何具有挑戰性的行爲,並且他們已經解決了使用DTF來解決問題,我發佈了這個問題以分享人員時刻。 – sankar 2010-02-26 08:33:00

+0

+1提及WiX Toolset安裝包含的DTF文檔安裝 – Jaans 2014-05-19 00:56:04

2

搜索我的博客http://blog.deploymentengineering.com爲DTF,你會發現很多有用的內容。我喜歡DTF,但我仍然相信最好的解決方案是首先儘可能地避免CA。像VBScript之前的C#是如此誘人,以至於在不需要的時候,C#往往會吸引命令性的開發人員編寫CA。我相信這就是DTF這麼久沒有發佈的原因。

在我的日常工作中,任何相信他們需要CA的人都需要我的批准。我指導開發人員瞭解基本的MSI哲學,如何使用DTF,如何附加調試器,並且我明確表示如果它有任何問題,它們都處於掛鉤狀態。在我們的產品系列中,結果是很少但是寫得很好的CA.

相關問題