2009-06-25 78 views
1

我想避免重新分配.NET運行時(如果可能的話)與我的應用程序,因爲它會增加應用程序的大小,下載時間,開發時間&可能會引入許多不同的部署錯誤。 Microsoft是否強制用戶通過Windows更新來更新.NET運行時?如果不是,那麼重新分配.NET運行時的一些選項是什麼?微軟是否更容易使用.NET應用程序重新分配運行時?此外,.NET運行時是否可以向後兼容?我應該擔心使用我的應用程序重新分發.NET運行時嗎?

我只是在這裏總結答案。看起來我們必須有一個引導程序來檢查.NET運行時的存在。另一種選擇是打包運行時並將其部署,如果它不存在。有多種包裝選項& Visual Studio確實提供了一個用運行時構建安裝程序項目的選項。還有其他包裝選項,如InnoSetup,WIX等(不知道哪個選項更好,免費)。運行時安裝需要重新啓動,選擇的安裝選項應在重新啓動後恢復應用程序安裝。

+0

您是否指的是特定版本的.Net? – adrianbanks 2009-06-25 22:56:48

+0

我不是,但它是否有什麼不同,如果我針對一個特定的版本? – msvcyc 2009-06-25 23:44:46

+0

http://stackoverflow.com/questions/112941/create-program-installer-in-visual-studio-2005/113133 – SwDevMan81 2009-06-26 03:19:57

回答

2

此外,你應該擔心。沒有運行時,你的應用程序將神祕地無法工作。你永遠不應該假設某些特定版本的運行時已經預先安裝好了。

如上所述,VS中的安裝程序項目嚮導將創建一個安裝文件,僅在需要時才下載它。 NSIS和Inno Setup有腳本可以做同樣的事情。請注意,當您安裝運行時時,您將需要處理重新啓動和繼續設置。我相信安裝程序嚮導會爲您處理這個問題。

1

當您創建安裝程序包時,它只會在需要時安裝運行時。即不在系統上(或錯誤的版本)

編輯:是的,你應該創建這個包,它讓你的生活更容易做到這一點。您在VS中執行此操作的方式是File-> Project並選擇intstaller項目。該向導將指導您完成選項。

+0

這是我的問題。我應該甚至擔心創建這個安裝程序包,我該如何創建這個安裝程序包?如果可能的話,我想消除所有這些安裝包的開發。 – msvcyc 2009-06-25 22:59:42

3

只需製作Windows Installer項目即可。您應該將此作爲VS2005和VS2008中的一個選項。它將確保在安裝應用程序時系統具有.NET運行時和任何其他所需的軟件。這會將它添加到您的安裝程序包中,而不是您的應用程序。這通常是您安裝應用程序的方式,或者您使用Install Shield。

Here is a guide

alt text http://img154.imageshack.us/img154/2066/newprojectr.png

+0

文章不再可用。 – 2017-01-16 19:29:51

0

這取決於。在我工作的地方,我們將它包含在安裝程序中作爲先決條件,因爲我們有一些客戶可能沒有互聯網連接來下載運行時。

有幾件事情可以做:

  1. 包括.NET的目標機器和退出的版本出來的測試安裝,如果它不存在。
  2. 製作包含.NET運行時的安裝版本,並在需要時安裝它。
  3. 製作一個安裝版本,它將下載.NET運行時並根據需要進行安裝。

如果我知道我的顧客都在線,我會選擇3。NET以及Crystal Reports或SQL Express等其他先決條件。我已經安裝了我已經包括的地方,安裝超過100MB。 70MB +是先決條件。

1

使用某種引導程序,您可以檢查.NET是否已安裝,然後在必要時下載它。

例如,使用MSI Factory引導程序(我不主張MSI Factory,這是一個醜陋的程序,但它自帶的引導程序本身是值得的,如果您正在開發像我們這樣的商業軟件的許可證費用)你可以簡單地包含腳本來執行這個功能。我們使用WiX + MSI Factory引導程序分發單個壓縮EXE(30Mb)和一個下載MSI的小型1Mb「下載程序」EXE。兩個EXE都檢查是否存在.NET 2.0,然後在必要時下載它。我們還分發一個獨立的MSI,它也檢查.NET並阻止安裝,如果它不存在。

基本上你有以下幾點:

  • Windows XP中 - 不隨.NET一起。客戶需要手動安裝(它顯示爲一個可選的Windows更新組件)
  • Vista的 - 附帶了.NET 2.0(但不1.1
  • Server 2003中 - 附帶.NET 1.1

忽略.NET 1.1,忽略它。 Vista用戶及更高版本只會安裝舊版應用程序支持,或者他們是開發人員。

.NET 2.0是最常用的安裝版本,從我們的用戶羣中我們發現只有不到10%的用戶安裝了.NET 3.5。如果您的應用程序針對技術性,怪異的觀衆,那麼我會說約50%的人擁有.NET 3.0。如果你的目標是消費者/零售/非技術市場,你可以用.NET 2.0和.NET 3.0或更高版本估計約30%和10%。

以上數據基於瀏覽器對我們網站的訪問量,這些訪問量主要是非技術性用戶。這可能是獲得市場想法的最佳方式。 IE始終在用戶代理字符串中報告.NET版本,因此請打開網絡日誌並開始分析:)

相關問題