2008-08-20 56 views
2

我正在設置哪個想包括Microsoft.Web.Services3(WSE 3.0)DLL。但是,我通常不喜歡在我們的安裝中包含Microsoft DLL,除非通過微軟的可再發行組件。 Microsoft提供了一個開發人員和一個redist安裝程序包。發佈Microsoft DLL的安裝程序的最佳做法

因此,作爲最佳實踐,我應該在我的安裝中包含單個DLL還是將它們引用到其中一個WSE 3.0安裝(假設它們尚未安裝)?

+0

我必須承認(特別是對於那個特定的DLL),我總是把它包含在我的設置中 - 但是後來我在企業環境中工作,而不是公開發布。 – samjudson 2008-08-20 13:26:05

回答

5

通常,重新分發任何Microsoft DLLs在可再發行組件包之外是被其EULA禁止的,因此您可能首先需要檢查該DLL的相應EULA。

一般來說,我更喜歡redist包,因爲它確保它正確地「註冊」到系統中,也就是說,如果您安裝更新版本的redist,它會得到更新(如DirectX),或者如果它是舊的版本(也像DirectX)。

0

如果你不包含它,你應該至少直接在你的網站上鍊接它,或者讓你的安裝程序打開網頁瀏覽器(或者甚至自動下載它)。或者更好的是,在軟件包中包含可再發行組件。但是,如果DLL不是很大,並且您懷疑少數用戶會擁有它,爲了更好的用戶,我會在默認安裝程序中預先打包它。但是,對於那些需要較小安裝程序的用戶,您始終可以擁有一個安裝程序,而不需要安裝程序......許多其他供應商始終都在執行此操作。

2

檢查安裝程序是否安裝了WSE 3.0,並且如果它沒有提醒此人並取消安裝(如果正常繼續)。我不會將DLL包含在安裝程序包中,因爲它可能會過期很快,而且我不知道EULA是否允許它。

2

我相信MS EULA會阻止您重新分發MS代碼,除非它在可再發行的軟件包中。

適當的可再發行組件應該可以處理任何其他先決條件,所以它可能是更好的選擇。

0

感謝您的建議/意見!在與Windows安裝程序設置摔跤後,我想出了包含WSE30 redist的最佳方式,並在未安裝的情況下彈出對話框。

我知道它不是最好的實踐(並對微軟的EULA提到)只包含DLL,這就是爲什麼我覺得奇怪它試圖包含WSE DLL以外的redist,特別是當redist被註冊到安裝程序時(它在屬性下顯示爲預先請求)。

再次感謝。