Microsoft .NET Framework 3.0 部署指南

 

Microsoft Corporation

2006 年 7 月

目录

总结
简介
安装要求
   软件要求
   硬件要求
获取 .NET Framework 3.0 可再发行程序包的位置
使用 Visual Studio 2005 安装项目重新分发 .NET Framework 3.0
让用户手动安装.NET Framework
在应用程序设置中链接可再发行程序包
重新分发适用于 Web 应用程序的 .NET Framework 3.0
检测 Microsoft .NET Framework 3.0
   读取注册表项
   在 Internet Explorer 中读取用户代理字符串
.NET Framework 3.0 可再发行对象的命令行选项
.NET Framework 3.0 可再发行对象的错误代码

总结

本文介绍如何使用 Dotnetfx3.exe(.NET Framework 3.0 可再发行程序包)部署 Microsoft .NET Framework 3.0 应用程序。 (10 个打印页)

注意 本文档可能包含讨论分发的方案的信息,但本文档不授予您使用或分发组件的任何部分的任何权限。 使用组件需遵守组件的许可协议。 请查看组件许可协议,了解你的权利和使用条件。

简介

Microsoft.NET Framework 3.0 提供了一个可再发行安装程序,其中包含.NET Framework 2.0 绑定到运行 .NET Framework 3.0 应用程序所需的 Windows Vista API。

.NET Framework 3.0 可再发行程序包以独立可执行文件的形式提供。 文件的名称取决于目标平台的类型。 对于 32 位平台,文件命名为 Dotnetfx3.exe。 对于 64 位平台,该文件命名为 Dotnetfx3_x64.exe。 还可以部署名为 Dotnet3setup.exe 的小型可再发行程序包,用于在安装过程中下载所需的组件。

注意.NET Framework 3.0 中的 IA64 支持仅限于代号为“Longhorn”的 Microsoft Windows Server。Longhorn 已包含 .NET Framework 3.0,因此无需再发行程序包。

可以在计算机上手动启动和安装可再发行组件,也可以将其作为 .NET Framework 3.0 应用程序的安装程序的一部分启动和安装。

注意安装 .NET Framework 3.0 需要管理员权限。

安装要求

本部分介绍要安装 Microsoft .NET Framework 3.0 可再发行程序包的计算机的软件和硬件要求。 如果不满足最低要求,Dotnetfx3.exe将阻止可再发行程序包的安装。

软件要求

若要安装 Microsoft .NET Framework 3.0,必须在目标计算机上安装以下操作系统之一:

  • Microsoft Windows XP Home 或 Microsoft Windows XP Professional,均附带 Service Pack 2 或更高版本。
  • 带有 Service Pack 1 或更高版本的 Microsoft Windows Server 2003 系列。

对于 Microsoft Windows Vista (不包括 IA64 平台) 和 Microsoft Windows Server 代号为“Longhorn”IA64 版本,.NET Framework 3.0 是操作系统的一项功能。

硬件要求

下表列出了运行 .NET Framework 3.0 的硬件要求。

  需要 CPU 需要 RAM
最小值 Pentium 400 MHz 96 MB
建议 Pentium 1 GHz 或更高 256 MB 或更大

获取 .NET Framework 3.0 可再发行程序包的位置

可以从 Microsoft Vista 下载中心或 Microsoft Windows 更新 网站下载 Microsoft .NET Framework 3.0 可再发行程序包。

注意Microsoft Windows 更新 站点仅提供正式发布的 .NET Framework 3.0 版本;它不提供 beta 版本。

如果需要让用户从 Internet 安装 Microsoft .NET Framework 3.0,请不要在自己的网络上发布可再发行程序包。 而是将用户定向到 Microsoft Vista 下载中心Microsoft Windows 更新 网站。

使用 Visual Studio 2005 安装项目重新分发 .NET Framework 3.0

部署使用 Visual Studio 2005 创建且需要 .NET Framework 3.0 的应用程序时,必须先在目标计算机上安装.NET Framework,然后才能安装应用程序。 可以在使用 Visual Studio 2005 安装项目创建的安装可执行文件中包含 .NET Framework 3.0。 如果这不切实际,可以让用户手动安装.NET Framework,如下文所述。

配置 Visual Studio 2005 安装项目以随应用程序一起安装 Microsoft .NET Framework 3.0 时,.NET Framework 3.0 会随应用程序一起打包。 应用程序安装程序中的启动条件检查 whether.NET 已安装 Framework 3.0,如有必要,安装过程会在安装应用程序之前安装.NET Framework。 Microsoft .NET Framework 3.0 依次检查 whether.NET 安装 Framework 2.0。 否则,安装过程会提示用户安装早期版本的.NET Framework。

若要在应用程序的安装过程中包括 .NET Framework 3.0,必须在创建安装项目的计算机上安装可选的 Visual Studio Extensions for .NET Framework 3.0。

确定是否安装了适用于 .NET Framework 3.0 的 Visual Studio 扩展

  1. 在 Windows 控制面板中,单击“添加或删除程序”。
  2. 在“添加或删除程序”对话框中,检查 Microsoft Visual Studio 2005 Extensions for .NET Framework 3.0“当前安装的程序”列表。

如果未列出 Visual Studio 2005 Extensions for .NET Framework 3.0,则可以下载并安装扩展包作为 WinFX 开发工具的一部分,该包位于 Microsoft 下载中心的 Microsoft Visual Studio Code名称“Orcas”社区技术预览版 - WinFX 开发工具“页上。

如果确定计算机上已安装 Visual Studio Extensions for .NET Framework 3.0 包,则可以创建包含 .NET Framework 3.0 的安装项目。

将 .NET Framework 3.0 包含在安装项目中

  1. 在 Visual Studio 2005 中,按照以下步骤创建新的安装项目:

    1. “文件 ”菜单中,单击“ 新建”,然后单击“ 项目”。
    2. 在“ 其他项目类型”下,选择“ 设置和部署”。
    3. 为项目命名,然后单击“ 确定”。
  2. 添加项目输出、合并模块、文件和程序集。

  3. 在解决方案资源管理器中,右键单击项目名称,然后单击“属性”。

    随即显示“属性页”对话框。

  4. 单击“ 先决条件”。

  5. 选择“创建安装程序以检查安装必备组件”框。

  6. 在列表中,找到 Microsoft .NET Framework 3.0,然后选择适合目标平台的版本。

  7. 指定先决条件的源位置。

    对于 .NET Framework 3.0 的位置,可以指定 Windows Vista 下载站点或自己的站点。 该 URL 还可以指定分发你自己的应用程序的 CD。

  8. 单击" 确定"。

让用户手动安装.NET Framework

在某些情况下,使用应用程序自动安装 .NET Framework 3.0 可能不切实际。 此时,可以让用户自行安装 .NET Framework。 可从多个源获取可再发行组件,如前面在何处获取 the.NET Framework 3.0 可再发行程序包部分所述。 但是,不应假设应用程序的用户知道从何处获取它或如何安装它。 在安装过程中,请提供有关说明,介绍用户应如何查找并安装 .NET Framework。

在应用程序设置中链接可再发行程序包

如果不想创建 Visual Studio 安装项目或让用户手动安装 .NET Framework 3.0,可以将 .NET Framework 3.0 安装过程链接为你自己的应用程序设置的一部分。 若要链接 .NET Framework 3.0 安装过程,可以从命令行运行可再发行组件,并使用以下无提示安装命令行选项:

/q /norestart

重新分发适用于 Web 应用程序的 .NET Framework 3.0

在依赖于 .NET Framework 3.0 功能的基于 Web 的应用程序中,可能需要在用户的计算机上下载并安装.NET Framework。 可以通过查询浏览器标头中的 user-agent 字符串来确定用户计算机上是否安装了 .NET Framework 3.0。 如果未安装正确版本的 .NET Framework,可以将用户定向到 .NET Framework 3.0 下载中心以获取 .NET Framework 3.0 包。

检测 Microsoft .NET Framework 3.0

可以通过读取注册表项和在 Internet Explorer 中查询用户代理字符串来检测是否安装了 .NET Framework 3.0。

读取注册表项

.NET Framework 3.0 安装程序在安装成功时写入注册表项。 可以通过检查下表中列出的注册表项来测试 Framework 3.0 安装 whether.NET。

注册表项名称
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup
名称 InstallSuccess

类型:DWORD

数据

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

类型:REG_SZ

数据

在 Internet Explorer 中读取用户代理字符串

在计算机上安装 .NET Framework 3.0 时,.NET Framework 3.0 版本号显示为浏览器标头中报告的用户代理字符串的一部分。 以下示例演示了一个示例页,该页面使用 JavaScript 来检测和报告安装 Framework 3.0 whether.NET。

注意 此示例页需要 Internet Explorer。

<HTML>
  <HEAD>
    <TITLE>Test for .NET Framework 3.0</TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var NETFX3RuntimeVersion = "3.0.50727";
    
    function window::onload()
    {
      if (HasRuntimeVersion(NETFX3RuntimeVersion))
      {
result.innerText = "This machine has the correct version of the .NET 
Framework 3.0 runtime: " + NETFX3RuntimeVersion + "."  + "\n\nThis 
machine's userAgent string is: " + navigator.userAgent + ".";
      } 
      else
      {
        document.write("The .NET Framework version 3.0 is not installed on this computer.<br/>"
+ "<a href='https://msdn.microsoft.com/windowsvista/default.aspx'>"
+ "Click here to get</a> .NET Framework 3.0 now.");      }
    }
    
    //
    // Retrieve the version from the user agent string and compare with specified version.
    //
    function HasRuntimeVersion(versionToCheck)
    {
      var userAgentString = navigator.userAgent.match(/.NET Framework 3.0 RunTime [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>
    <div id="result" />
  </BODY>
</HTML>

如果搜索字符串“.NET Framework 3.0”版本成功,则显示以下消息:

This machine has the correct version of the .NET Framework 3.0: 3.0.50727.
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.0.50727).

否则,将显示以下消息:

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

.NET Framework 3.0 可再发行对象的命令行选项

下表列出了从命令行运行 .NET Framework 3.0 可再发行组件安装程序 (Dotnetfx3.exe、Dotnetfx3_x64.exe或Dotnet3setup.exe) 时可以包含的选项。

选项 说明
/q
禁止显示所有 UI。 不能使用此选项指定.INI文件。
/quiet
/q 相同。
/qb
显示最小 UI,仅显示进度。
/passive
/qb 相同。
/uninstall
卸载产品。
/remove
/uninstall 相同。
/f
修复安装的所有 .NET Framework 3.0 组件。
/nopatch
指定不应用修补程序,并绕过修补程序检查。
/norollback
指定在安装组件失败时不回滚安装程序。
/norestart
指定安装程序在安装完成后不重新启动计算机。 如果需要重新启动,可再发行组件安装程序将返回 ERROR_SUCCESS_REBOOT_REQUIRED (3010) 。
/?
显示此选项列表。

.NET Framework 3.0 可再发行对象的错误代码

下表列出了可由 .NET Framework 3.0 可再发行组件安装程序 (Dotnetfx3.exe、Dotnetfx3_x64.exe 或 Dotnet3setup.exe) 返回的错误代码。 所有版本的安装程序的错误代码都是相同的。

错误代码 说明
ERROR_SUCCESS
0 操作已成功完成。
ERROR_INSTALL_USEREXIT
1602 用户已取消安装。
ERROR_INSTALL_FAILURE
1603 安装期间发生错误。
ERROR_UNKNOWN_PRODUCT
1605 此操作仅对当前安装的产品有效。
ERROR_PATCH_PACKAGE_INVALID
1636 无法打开修补程序包,或者修补程序不适用于 .NET Framework 3.0。
ERROR_INVALID_COMMAND_LINE
1639 无效的命令行参数。
ERROR_SUCCESS_REBOOT_INITIATED
1641 安装程序已发起重启。 这表示成功,安装程序将在重启后继续。 (如果指定了选项, /norestart 则不执行重新启动。)
ERROR_PATCH_PACKAGE_REJECTED
1643 系统策略不允许该修补程序包。
ERROR_SUCCESS_REBOOT_REQUIRED
3010 需要重新启动才能完成安装。 此消息指示安装成功。