.NET Framework 3.5 應用程式開發人員部署手冊

Microsoft .NET Framework 3.5 版提供可轉散發套件安裝程式,其中也包含 .NET Framework 2.0 和 3.0 的 Service Pack 和累加更新。

本主題說明如何使用您的應用程式轉散發 .NET Framework。 它包含以下各節:

  • 可用格式

  • 何處可以取得 .NET Framework 3.5 可轉散發套件

  • 安裝需求

  • 手動安裝 .NET Framework

  • 在應用程式安裝中鏈結可轉散發套件

  • 為 Web 應用程式安裝 .NET Framework 3.5

  • 偵測 .NET Framework 3.5

  • 命令列選項

  • 錯誤碼

  • 附錄:.NET Framework 3.5 元件

  • 附錄:安裝範例

可用格式

.NET Framework 3.5 可轉散發套件提供兩種格式:

  • dotnetfx35.exe:這是獨立可執行檔,包含部署到所有支援作業系統上的 32 位元和 64 位元平台需要的所有元件。 這個執行檔不包含語言套件;根據預設,該檔案會下載並安裝符合使用者作業系統語言的語言套件。 .NET Framework 3.5 版語言套件會在 Microsoft 下載中心另外以各語言的獨立可執行檔提供。

  • dotnetfx35setup.exe:這是輕量型啟動載入器,安裝期間會從網站下載必要元件。 這個可執行檔不包含任何 .NET Framework 3.5 版的元件;該執行檔只會偵測並從 Web 下載及安裝必要的元件。 啟動載入器也會下載和安裝符合使用者作業系統語言的語言套件。 獨立語言套件可用來安裝其他語言支援。

您可以在所有支援作業系統的 32 位元和 64 位元平台上使用任一種套件。

您可以在電腦上手動啟動和安裝可轉散發套件,或是將套件當做 .NET Framework 3.5 應用程式安裝程式的一部分啟動並安裝。

注意事項:

安裝 .NET Framework 3.5 需要具備系統管理員權限。

何處可以取得 .NET Framework 3.5 可轉散發套件

您可以從 Microsoft 下載中心下載 Microsoft .NET Framework 3.5 可轉散發套件。 頁面頂端的 [下載] 按鈕可安裝啟動載入器 (dotNetFx35setup.exe)。 若要下載完整的安裝套件,請向下捲動到頁面底部的 [完整版可轉散發套件] 連結。

安裝需求

本節摘要說明安裝 .NET Framework 3.5 的軟體和硬體需求。 如果沒有符合最低需求,.NET Framework 安裝程序會停止安裝。

如需硬體和軟體需求的詳細清單,請參閱 3.5 版的系統需求.

軟體需求

.NET Framework 3.5 需要目標電腦安裝下列其中一種作業系統:

  • Windows XP Home 或 Windows XP Professional,兩者皆須搭配 Service Pack 2 或更新版本。

  • Windows Server 2003 系列 Service Pack 1 (含) 以後版本。

  • Windows Vista。

  • Windows Server 2008。

    注意事項:

    .NET Framework 3.5 只有在 Microsoft Windows Server 2008 上才支援 IA64。

硬體需求

下表列出執行 .NET Framework 3.5 的 CPU 和 RAM 需求。

 

需要的 CPU

需要的 RAM

最低需求

Pentium 400 MHz

96 MB

建議使用

Pentium 1 GHz 或以上

256 MB 或更多

手動安裝 .NET Framework

在某些情況下,隨著應用程式自動安裝 .NET Framework 3.5 對您來說並不是那麼實際。 在這種情況下,您可以讓使用者自行從 Microsoft 下載中心安裝 .NET Framework。 請在安裝過程中提供指示,讓使用者知道如何找到和安裝 .NET Framework。

注意事項:

請不要在您自己的網路上張貼可轉散發套件, 而是將使用者引導至 Microsoft 下載中心

在應用程式安裝中鏈結可轉散發套件

.NET Framework 3.5 提供三種方式,將 .NET Framework 安裝程序包含 (「鏈結」) 在您的應用程式的安裝程序:

  • 選擇 1:讓 .NET Framework 安裝程序決定哪些元件是必要的,並從網站下載和安裝僅為必要的元件。

    若要讓 .NET Framework 安裝程序偵測、下載和安裝僅為必要的元件,請使用 dotnetfx35setup.exe 套件。 若要鏈結 .NET Framework 安裝程序,請將下列命令加入至您的應用程式的安裝程序:

    dotnetfx35setup.exe /q /norestart

  • 選擇 2:將完整的一組 .NET Framework 檔案隨附於您的可轉散發媒體,這樣使用者在安裝時就不需要從網站下載任何額外的檔案。

    如果您要將所有元件包含在 .NET Framework 安裝程序中,請使用完整的獨立可執行檔 (dotnetfx35.exe)。 這個套件包含在 x86、x64 和 IA64 電腦的任何支援作業系統上安裝 .NET Framework 3.5 所需的元件。 如果空間和下載時間對於應用程式部署不是問題的話,請使用這個套件。 若要鏈結 .NET Framework 安裝程序,請使用下列命令:

    dotnetfx35.exe /q /norestart

  • 選擇 3:包含使用者最常用的必要元件,並讓 .NET Framework 安裝程序偵測任何遺漏的元件,再從網站下載這些元件。 如果您要將應用程式部署到特定平台、作業系統或使用者系統組態,則最適合使用這種方法。

    若要執行此安裝,您必須先取得完整的獨立可執行檔,並使用下列命令解壓縮檔案:

    dotnetfx35.exe /x extract-location

    解壓縮檔案之後,您會看到一個檔案和資料夾結構,其中列出 .NET Framework 3.5 中每個元件的檔案清單,如本文附錄所示。

    若要部署 .NET Framework 3.5,請將適當元件包含在解壓縮程序所建立的資料夾結構中,然後使用下列命令,將它們鏈結在 .NET Framework 啟動載入器安裝程式中:

    dotnetfx35setup.exe /q /norestart

    本文附錄提供兩個範例,示範哪些項目要包含在您的配置中。

不論選擇哪種方式鏈結 .NET Framework 3.5 安裝程序,請務必從命令列執行可轉散發套件,並使用 /q/norestart 命令列選項。

注意事項:

為避免自動下載及安裝語言套件,請使用命令列選項 /lang:enu

為 Web 應用程式安裝 .NET Framework 3.5

需要 .NET Framework 3.5 功能的 Web 應用程式,可能需要在使用者電腦上下載和安裝 .NET Framework。 您可以依照下一節中的指示,判斷使用者電腦上是否有安裝 .NET Framework 3.5。 如果沒有安裝正確的 .NET Framework 版本,您可以將使用者引導至 Microsoft 下載中心,以取得 .NET Framework 3.5 套件。

偵測 .NET Framework 3.5

您可以藉由讀取登錄機碼或在 Internet Explorer 中查詢 user-agent 字串,偵測是否有安裝 .NET Framework 3.5。

讀取登錄機碼

.NET Framework 3.5 安裝程式會在安裝成功完成時寫入登錄機碼。 您可以藉由檢查下表所列出的登錄機碼,測試是否有安裝 .NET Framework 3.5。

登錄機碼名稱

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5

名稱:Install

類型:REG_DWORD

資料:1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform

名稱:.NET CLR 3.5.組建編號

類型:REG_SZ

在瀏覽器中讀取 User-Agent 字串

當電腦上已安裝 .NET Framework 3.5 時,.NET Framework 3.5 版本號碼會顯示為瀏覽器標頭中所報告 user-agent 字串的一部分。 下列範例顯示的範例網頁,會使用 JavaScript 偵測和報告是否有安裝 .NET Framework 3.5。

<html>
  <head>
    <title>Test for .NET Framework 3.5</title>
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
    <script type="text/JavaScript">
    <!--
    var NETFX3RuntimeVersion = "3.5.21022";
    
    function body_onload()
    {
      var result = document.getElementById("result");
      if (HasRuntimeVersion(NETFX3RuntimeVersion))
      {
          result.innerHTML = "This machine has the correct version of the .NET Framework 3.5 runtime: " 
          + NETFX3RuntimeVersion + "." 
          + "\n\nThis machine's userAgent string is: " 
          + navigator.userAgent + ".";
      } 
      else
      {
        result.innerHTML = "The .NET Framework version 3.5 is not installed on this computer.<br/>"
            + "Click <a href='https://go.microsoft.com/fwlink/?LinkId=96339'"
            + " here</a> to get the .NET Framework 3.5 now.";}
    }
    
    //
    // Retrieve the version from the user agent string and compare with specified version.
    //
    function HasRuntimeVersion(versionToCheck)
    {
      var userAgentString = 
           navigator.userAgent.match(/.NET CLR 3.5.[0-9]+/g);
      if (userAgentString != null)
      {
        var i;
        for (i = 0; i < userAgentString.length; ++i)
        {
          if (CompareVersions(GetVersion(versionToCheck), 
                GetVersion(userAgentString[i])) <= 0)
            return true;
        }
      }
      return false;
    }

    //
    // Extract the numeric part of the version string.
    //
    function GetVersion(versionString)
    {
      var numericString = versionString.match(/([0-9]+)\.([0-9]+)\.([0-9]+)/i);
      return numericString.slice(1);
    }

    //
    // Compare the version strings by converting them to numeric format.
    //
    function CompareVersions(version1, version2)
    {
      for (i = 0; i < version1.length; ++i)
      {
        var number1 = new Number(version1[i]);
        var number2 = new Number(version2[i]);

        if (number1 < number2)
          return -1;
        if (number1 > number2)
          return 1;
      }
      return 0;
    }
    
    -->
    </script>
  </head>
  
  <body onload="body_onload();">
    <div id="result" ></div>
  </body>
</html>

如果搜尋字串 ".NET Framework 3.5" 版本成功,則會顯示下列訊息:

This machine has the correct version of the .NET Framework 3.5 runtime: 3.5.28015.00.
This machine's userAgent string is: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.5.28015.00).

(使用者代理字串的細節會根據用來測試 .NET Framework 的瀏覽器和瀏覽器版本而稍有不同)

如果未安裝 .NET Framework 3.5,則會顯示下列訊息:

The .NET Framework version 3.5 is not installed on this computer. Click here to get the .NET Framework 3.5 now.

命令列選項

下表列出當您從命令列執行 .NET Framework 3.5 可轉散發套件安裝程式時,可指定的選項。

選項

說明

/q

-或-

/quiet

設定無訊息模式 (隱藏所有 UI)。 使用這個選項時不能指定 .ini 檔。

/qb

-或-

/passive

顯示最低限度的使用者介面;顯示進度列,但不會向使用者顯示任何提示或錯誤訊息。

/uninstall

-或-

/remove

解除安裝產品。

/f

修復所有已安裝的 .NET Framework 元件。

/nopatch

指定不適用的修補檔案,並略過修補檔案檢查。

/norollback

指定如果安裝元件失敗,將不復原安裝程式。

/norestart

指定安裝完成之後安裝程式不要重新啟動電腦。 如果需要重新開機,可轉散發套件安裝程式會傳回 ERROR_SUCCESS_REBOOT_REQUIRED (3010)。

/lang:TLA

安裝以三個字母縮寫 (TLA) 指定的語言套件;例如,/lang:DEU 是指德文語言套件,/lang:JPN 則是指日文語言套件。 您只能指定一種語言。 指定 /lang:ENU 會略過語言套件安裝程序,因為 ENU 是表示英文的 TLA。

/?

顯示這個選項清單。

錯誤碼

下表列出 .NET Framework 3.5 可轉散發套件安裝程式可能傳回的錯誤碼。 所有版本的安裝程式的錯誤碼都相同。

錯誤碼

說明

ERROR_SUCCESS

0

動作已成功完成。

ERROR_INSTALL_USEREXIT

1602

使用者已取消安裝。

ERROR_INSTALL_FAILURE

1603

安裝期間發生嚴重錯誤。

ERROR_UNKNOWN_PRODUCT

1605

此動作只對目前已安裝的產品有效。

ERROR_PATCH_PACKAGE_INVALID

1636

無法開啟修補套件或修補檔案不適用於 .NET Framework。

ERROR_INVALID_COMMAND_LINE

1639

無效的命令列引數。

ERROR_SUCCESS_REBOOT_INITIATED

1641

安裝程式已啟始重新開機作業。 這個訊息表示成功,且安裝程式會於重新開機後繼續 (如果指定 /norestart 選項,則不會執行重新開機)。

ERROR_PATCH_PACKAGE_REJECTED

1643

系統原則未許可這個修補套件。

ERROR_SUCCESS_REBOOT_REQUIRED

3010

需要重新開機才能完成安裝。 這個訊息表示成功。

附錄

本附錄提供的表格中使用的作業系統縮寫如下:

  • XP = Windows XP

  • Vista = Windows Vista

  • W2K3 = Windows Server 2003

  • W2K8 = Windows Server 2008

.NET Framework 3.5 元件

下表列出 .NET Framework 3.5 版的元件。

路徑

檔案名稱

平台

作業系統

說明

wcu\dotNetFramework

dotNetFx35setup.exe

全部

全部

.NET Framework 3.5 安裝啟動載入器

wcu\dotNetFramework\dotNetFX20

ASPNET.msp

x86、x64

XP、W2K3

2.0 SP1 元件

 

ASPNET_64.msp

x64

XP、W2K3

2.0 SP1 元件

 

clr.msp

x86、x64

XP、W2K3

2.0 SP1 元件

 

clr_64.msp

x64

XP、W2K3

2.0 SP1 元件

 

crt.msp

x86、x64

XP、W2K3

2.0 SP1 元件

 

crt_64.msp

x64

XP、W2K3

2.0 SP1 元件

 

dw.msp

x86、x64

XP、W2K3

2.0 SP1 元件

 

dw_64.msp

x64

XP、W2K3

2.0 SP1 元件

 

Netfx20a_x64.msi

x64

XP、W2K3

2.0 SP1 元件

 

Netfx20a_x86.msi

x86

XP、W2K3

2.0 SP1 元件

 

NetFX_CA.msp

x86、x64

XP、W2K3

2.0 SP1 元件

 

NetFX_Core.msp

x86、x64

XP、W2K3

2.0 SP1 元件

 

NetFX_Core_64.msp

x64

XP、W2K3

2.0 SP1 元件

 

NetFX_Other.msp

x86、x64

XP、W2K3

2.0 SP1 元件

 

NetFX_Other_64.msp

x64

XP、W2K3

2.0 SP1 元件

 

prexp.msp

x86、x64

XP、W2K3

2.0 SP1 元件

 

winforms.msp

x86、x64

XP、W2K3

2.0 SP1 元件

 

winforms_64.msp

x64

XP、W2K3

2.0 SP1 元件

wcu\dotNetFramework\dotNetFX30

Netfx30a_x64.msi

x64

XP、W2K3

3.0 SP1 元件

 

Netfx30a_x86.msi

x86

XP、W2K3

3.0 SP1 元件

 

RGB9RAST_x64.msi

x64

XP、W2K3

3.0 SP1 系統必要條件

 

RGB9RAST_x86.msi

x86

XP、W2K3

3.0 SP1 系統必要條件

 

WCF.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WCF_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WCS.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WCS_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WF.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WF_32.msp

x86

XP、W2K3

3.0 SP1 元件

 

WF_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WIC_x64_enu.exe

x64

XP、W2K3

3.0 SP1 系統必要條件

 

WIC_x86_enu.exe

x86

XP、W2K3

3.0 SP1 系統必要條件

 

WPF1.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WPF1_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WPF2.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WPF2_32.msp

x86

XP、W2K3

3.0 SP1 元件

 

WPF2_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WPF_Other.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WPF_Other_32.msp

x86

XP、W2K3

3.0 SP1 元件

 

WPF_Other_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

XPS.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

XPSEPSC-amd64-en-US.exe

x64

XP、W2K3

3.0 SP1 系統必要條件

 

XPSEPSC-x86-en-US.exe

x86

XP、W2K3

3.0 SP1 系統必要條件

wcu\dotNetFramework\dotNetFX30\x64

msxml6.msi

x64

XP、W2K3

3.0 SP1 系統必要條件

wcu\dotNetFramework\dotNetFX30\x86

msxml6.msi

x86

XP、W2K3

3.0 SP1 系統必要條件

wcu\dotNetFramework\dotNetFX35\ia64

netfx35_ia64.exe

ia64

W2K8

3.5 元件

wcu\dotNetFramework\dotNetFX35\x64

netfx35_x64.exe

x64

XP、W2K3、Vista、W2K8

3.5 元件

wcu\dotNetFramework\dotNetFX35\x86

netfx35_x86.exe

x86

XP、W2K3、Vista、W2K8

3.5 元件

wcu\dotNetFramework\dotNetMSP

NetFx_20_SP1_ENU_License.rtf

-

Vista

2.0 累加更新授權

 

NetFx_30_SP1_ENU_License.rtf

-

Vista

3.0 累加更新授權

 

NetFX2.0-KB110806-v6000-x64.msu

x64

Vista

2.0 累加更新

 

NetFX2.0-KB936704-v6000-x64_RTM_en.msu

x64

Vista、W2K8

2.0 英文語言套件

 

NetFX3.0-KB929300-v6000-x64.msu

x64

Vista

3.0 累加更新

 

NetFX3.0-KB936705-v6000-x64_RTM_en.msu

x64

Vista、W2K8

2.0 英文語言套件

 

NetFX2.0-KB110806-v6000-x86.msu

x86

Vista

2.0 累加更新

 

NetFX2.0-KB936704-v6000-x86_RTM_en.msu

x86

Vista、W2K8

3.0 英文語言套件

 

NetFX3.0-KB929300-v6000-x86.msu

x86

Vista

3.0 累加更新

 

NetFX3.0-KB936705-v6000-x86_RTM_en.msu

x86

Vista、W2K8

3.0 英文語言套件

安裝範例

下列範例列出必須分別包含在兩個不同安裝案例的安裝媒體中的檔案。

注意事項:

當您包含個別元件時,必須使用與 .NET Framework 3.5 安裝啟動載入器 (dotNetFx35setup.exe) 相同的相對路徑。

範例 1

下表列出您要部署到 Windows XP 或 Windows Vista 時,必須包含在安裝媒體配置中的檔案。 這個檔案清單假設使用者只安裝 x86 版本,並且已安裝 .NET Framework 2.0 SP1 和 3.0 SP1 (Windows XP 和 Windows Server 2003 上) 或累加更新 (Windows Vista 上)。

路徑

檔案名稱

平台

作業系統

說明

 

dotNetFx35setup.exe

全部

全部

.NET Framework 3.5 安裝啟動載入器

dotNetFX35\x86

netfx35_x86.exe

x86

XP、W2K3、Vista、W2K8

3.5 元件

範例 2

下表列出您要部署到 x86 和 x64 電腦上的 Windows XP SP2 或 Windows Server 2003 SP1 時,必須包含在媒體配置中的檔案。 這個檔案清單假設使用者已安裝 .NET Framework 2.0 SP1 版。

注意事項:

在這個範例中,如果使用者沒有 .NET Framework 2.0 SP1,在使用者連線到網際網路的情況下,安裝程式會自動下載它。

路徑

檔案名稱

平台

作業系統

說明

(根目錄)

dotNetFx35setup.exe

全部

全部

.NET Framework 3.5 安裝啟動載入器

dotNetFX30

Netfx30a_x64.msi

x64

XP、W2K3

3.0 SP1 元件

 

Netfx30a_x86.msi

x86

XP、W2K3

3.0 SP1 元件

 

RGB9RAST_x64.msi

x64

XP、W2K3

3.0 SP1 系統必要條件

 

RGB9RAST_x86.msi

x86

XP、W2K3

3.0 SP1 系統必要條件

 

WCF.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WCF_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WCS.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WCS_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WF.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WF_32.msp

x86

XP、W2K3

3.0 SP1 元件

 

WF_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WIC_x64_enu.exe

x64

XP、W2K3

3.0 SP1 系統必要條件

 

WIC_x86_enu.exe

x86

XP、W2K3

3.0 SP1 系統必要條件

 

WPF1.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WPF1_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WPF2.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WPF2_32.msp

x86

XP、W2K3

3.0 SP1 元件

 

WPF2_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

WPF_Other.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

WPF_Other_32.msp

x86

XP、W2K3

3.0 SP1 元件

 

WPF_Other_64.msp

x64

XP、W2K3

3.0 SP1 元件

 

XPS.msp

x86、x64

XP、W2K3

3.0 SP1 元件

 

XPSEPSC-amd64-en-US.exe

x64

XP、W2K3

3.0 SP1 系統必要條件

 

XPSEPSC-x86-en-US.exe

x86

XP、W2K3

3.0 SP1 系統必要條件

dotNetFX30\x64

msxml6.msi

x64

XP、W2K3

3.0 SP1 系統必要條件

dotNetFX30\x86

msxml6.msi

x86

XP、W2K3

3.0 SP1 系統必要條件

dotNetFX35\x64

netfx35_x64.exe

x64

XP、W2K3、Vista、W2K8

3.5 元件

dotNetFX35\x86

netfx35_x86.exe

x86

XP、W2K3、Vista、W2K8

3.5 元件

請參閱

概念

.NET Framework 3.5 系統管理員部署手冊