简介
本节对 .NET Framework 3.0 进行简要介绍。本文章还包含指向英文网页的连接。
关于 Microsoft .NET Framework 3.0
Microsoft .NET Framework 3.0(以前称为 WinFX),是用于 Windows 的新式托管代码编程模型。它将 .NET Framework 2.0 的功能和新的结构构建应用程序技术完美结合,可提供夺目的用户视觉体验、实现跨越技术边界的无缝通信,并支持广泛的业务流程。Microsoft 计划将 .NET Framework 3.0 作为 Windows Vista 的一部分来提供。同时,Microsoft 也将在 Windows XP Service Pack 2 和 Windows Server 2003 Service Pack 1 中提供 .NET Framework。
下表列出了 .NET Framework 3.0 包含的若干技术。
技术 | 说明 |
Windows Presentation Foundation(WPF,以前的代号为“Avalon”) | 提供用于结合 UI、文档和媒体构建下一代智能客户端应用程序的类。 |
Windows Communication Foundation(WCF,以前的代号为“Indigo”) | 提供统一的编程模型和运行时,用以构建面向服务的应用程序。 |
Windows Workflow Foundation (WF) | 提供编程模型、引擎和工具来构建支持工作流的应用程序,以进行业务流程建模。 |
Windows CardSpace(以前的代号为“InfoCard”) | 通过使用个人标识信息,简化和改善在线工作安全性。 |
Microsoft .NET Framework 2.0 | 提高了构建 Windows 和基于 Web 的应用程序的效率。 |
所有代表新组件(WPF、WF、WCF 和 CardSpace)的类均属于系统命名空间。.NET 平台的核心类,如公共语言运行时 (CLR) 和基类库 (BCL),均保留了 .NET Framework 2.0 中的原样。
下图为 .NET Framework 3.0 的结构示例。
图 1. .NET Framework 3.0
.NET Framework 3.0 如何与 .NET Framework 2.0 及更早版本相关联
.NET Framework 3.0 增加了新技术,从而成为 .NET Framework 2.0 的超集。您可以将 .NET Framework 3.0 看成是 .NET Framework 2.0 的“附加”版本,是对 2.0 的一次全面修订。(例如,.NET Framework 2.0 就是 .NET Framework 1.0 的一个改进版本。)
因为 .NET Framework 3.0 是一个附加版本,并且使用 .NET Framework 2.0 的核心运行时组件,所以它完全向后兼容其早期版本。基于 .NET Framework 2.0 的现有应用程序可继续运行,不需要任何修改;而且您可以使用随 .NET Framework 2.0 一同提供的技术,保证投资的安全。
如果您正从 .NET Framework 1.1 或 1.0 移植到 .NET Framework 3.0,则部署前应该执行影响分析并运行兼容性测试。虽然我们已尽力使 .NET Framework 版本具备兼容性,但仍发现由于增加安全性和重要功能而存在个别不兼容的情况。有关详细信息,请参阅 Microsoft .NET Developer Center 网站的 Breaking Changes in .NET Framework 2.0(英文)页面。
.NET Framework 3.0 的服务策略
Microsoft 将依照支持 .NET Framework 2.0 的平台所实施的标准支持策略,继续为 .NET Framework 2.0 提供服务。当前依赖于 .NET Framework 2.0 的用户,可以继续使用该版本,并在软件升级包发布后进行软件升级。
.NET Framework 3.0 的所有组件都可在支持 .NET Framework 3.0 的平台上运行。有关详细信息,请参阅 Microsoft Visual Studio Developer Center 网站的 Software Update Technology(英文)页面。
.NET Framework 未来版本路线图
通常,任何 .NET Framework 的新版本都会在设计上提供与早期版本的向后兼容性。如果新发布版本由于安全问题或其他原因而引入了破坏性更改,Microsoft 将使您在保留当前版本的前提下,并列安装新的版本。
有关详细信息,请参阅 Microsoft .NET Framework Developer Center(英文)网站。
返回页首
.NET Framework 3.0 的安装
默认情况下,Microsoft Windows Vista 会安装 .NET Framework 3.0。在代号为“Longhorn”的 Microsoft Windows Server 上,您可以使用角色管理工具,将 .NET Framework 作为 Windows 的一个功能进行安装。
在 Windows XP 和 Windows Server 2003 上,.NET Framework 3.0 安装程序还将添加任何尚未安装的 .NET Framework 2.0 组件。如果已经安装了 .NET Framework 2.0,.NET Framework 3.0 安装程序将只添加 Windows Presentation Foundation (WPF)、Windows Workflow Foundation (WF)、Windows Communication Foundation (WCF) 和 Windows CardSpace 等组件的文件。
与 .NET Framework 2.0 共享的组件安装在如下位置:
%windir%/Microsoft.NET/Framework/V2.0.50727
.NET Framework 3.0 的新组件安装在如下位置:
%windir%/Microsoft.NET/Framework/V3.0
.NET Framework 3.0 组件的所有引用程序集安装在如下位置:
%programfiles%/Reference Assemblies/Microsoft/Framework/v3.0
卸载 NET Framework 3.0 不会删除与 .NET Framework 2.0 共享的组件。要删除这些组件,您必须先卸载 .NET Framework 3.0,然后单独卸载 .NET Framework 2.0。(可以使用 Windows 控制面板中的添加/删除程序。)
.NET Framework 程序集的版本号
.NET Framework 3.0 与 .NET Framework 2.0 共享许多组件,公共语言运行时 (CLR) 和基类库与 .NET Framework 2.0 的相同。因此,这些共享组件仍保留 2.0 版本。Windows Communication Foundation (WCF)、Windows Presentation Foundation (WPF)、Windows Workflow Foundation (WF) 和 Windows CardSpace 的所有运行时和引用程序集为 3.0 版本。
返回页首
.NET Framework 3.0 的部署
本节提供部署 .NET Framework 3.0 以与您的应用程序配合使用的相关信息。
软件要求
要安装 .NET Framework 3.0,目标计算机上必须安装以下操作系统之一:
- Microsoft Windows XP Home 或 Microsoft Windows XP Home Professional,带 Service Pack 2 或更高版本。
- Microsoft Windows Server 2003 系列,带 Service Pack 1 或更高版本。
注意 .NET Framework 2.0 可继续在其目标平台上运行。有关详细信息,请参阅 MSDN 网站上的 .NET Framework 2.0 Redistributable Prerequisites(英文)页面。
在默认情况下,.NET Framework 3.0 与 Microsoft Windows Vista 同时安装。在 Microsoft Windows Server“Longhorn”上,可以使用角色管理工具,将 .NET Framework 3.0 作为 Windows 的一个功能进行安装。
注意 Microsoft Windows Server“Longhorn”IA64 版是唯一一款 .NET Framework 3.0 支持的 IA64 平台。
硬件要求
下表列出了运行 .NET Framework 3.0 的硬件要求。
- | CPU 要求 | RAM 要求 |
最低 | Pentium 400 MHz | 96 MB |
推荐 | Pentium 1 GHz 或更高 | 256 MB 或更大 |
.NET Framework 的重新分布权
Microsoft 强烈推荐客户将 .NET Framework 作为其软件解决方案的一部分,在企业内进行部署。分布 .NET Framework 3.0 运行时要求您接受许可条款。有关将 .NET Framework 3.0 重新分布到您的应用程序或第三方的信息,请参阅 MSDN 网站上的 The ISV Guide for Redistributing the .NET Framework and Other Runtime Components(英文)页面。
注意 只有 Microsoft .NET Framework 3.0 正式发布版本才有重新分布权。您的应用程序可能无法重新分布 Microsoft .NET Framework 3.0 的预发布版本。
用于部署 .NET Framework 3.0 的 IT 管理员工具
.NET Framework 3.0 为 IT 管理员提供了两种部署到域客户端的方式:管理员模式安装和Active Directory 部署。
管理员模式安装
管理员模式安装允许 IT 管理员使用 Microsoft 系统管理服务器 (SMS) 或其他软件分布工具部署 .NET Framework。IT 管理员在无提示模式下进行 Framework 安装。如果发生错误,安装程序会退出而没有提示,但会记录错误代码。
Active Directory 部署
在 Active Directory 部署中,管理员必须按照 .msi 文件的部署顺序,将独立的 .msi 文件从 .NET Framework 3.0 安装软件包中添加到组策略中。组策略启用后,任何属于该组策略的客户端将在启动并重新连接到网络后,自动安装这些组件。如果发生错误,安装程序会退出而没有提示,并会记录错误代码。
通过您的应用程序重新分布 .NET Framework
.NET Framework 3.0 重新分布软件包可以作为独立执行文件使用。文件名依据目标平台的类型而定。对于 32 位平台,文件名为 Dotnetfx3.exe。对于 64 位平台,文件名为 Dotnetfx3_x64.exe。您还可以部署一个名为 Dotnet3setup.exe 的小型重新分布软件包,以在安装期间下载所需组件。
当通过应用程序分布 .NET Framework 3.0 重新分布软件包时,您必须同意许可条款,这些许可条款会授予您特定的分布权利。
您可以在计算机上手动启动和安装重新分布软件包,或将其作为 .NET Framework 3.0 应用程序安装程序的一部分来启动和安装。
注意 安装 .NET Framework 3.0 需要具有管理员权限。
返回页首
检测 .NET Framework 3.0 和早期版本
可通过读取注册表项和在 Internet Explorer 中查询用户代理字符串,来检测是否已经安装了 .NET Framework 3.0。
读取注册表项
您可查找一个特定的注册表项值,来检测计算机上是否已经安装了 .NET Framework。下表中列出了您可以测试的注册表项和值,以确定否已经安装了特定版本的 .NET Framework。
版本 | 注册表项名 | 值 |
3.0 | HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.0/Setup | InstallSuccess (DWORD value = 1) |
2.0 | HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v2.0.50727 | Install (DWORD value = 1) |
1.1 | HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v1.1.4322 | Install (DWORD value = 1) |
1.0 | HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/policy/v1.0 | Install (DWORD value = 1) |
注意 有关检测以前为 .NET Framework 1.0 和 1.1 发布的服务包的详细信息,请参阅 Microsoft 知识库中的“How to determine which versions of the .NET Framework are installed and whether service packs have been applied”(英文),文章号为 318785。
在 Internet Explorer 中读取用户代理字符串
对于基于浏览器的应用程序,您可以使用计算机上运行的 Internet Explorer 来检测用户代理字符串,以检测该计算机上是否已经安装了 .NET Framework 3.0。用户代理字符串包含主要和次要版本号之前的子串“NET CLR”。下面是一个用户代理字符串示例:
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.04131.06)
附录 B:使用 Internet Explorer 检测 .NET Framework 3.0 的示例脚本列出了浏览器中运行的一个 JavaScript 示例程序,并显示了当前 .NET Framework 版本号的相关信息。
发送到浏览器标题中的用户代理字符串保存在服务器计算机的注册表中,如下表所列。版本 | 注册表项 |
3.0 | HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings/5.0/User Agent/Post Platform/.NETCLR.3.0.04131.06 注意 版号(实例中的 04131.06)会在 .NET Framework 3.0 最终发布时更改。 |
2.0 | HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings/5.0/User Agent/Post Platform/.NET CLR 2.0.50727 |
1.1 | HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings/5.0/User Agent/Post Platform/.NET CLR 1.1.4322 |
返回页首
.NET Framework 3.0 Redistributable 命令行选项
下表列出了从命令行中运行 .NET Framework 3.0 Redistributable 安装程序(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 |
指明安装完成后,安装程序不会重启计算机。如果要重启,Redistributable 安装程序将返回 ERROR_SUCCESS_REBOOT_REQUIRED (3010)。 |
/? |
显示此列选项。 |
返回页首
.NET Framework 3.0 Redistributable 错误代码
下表列出了 .NET Framework 3.0 Redistributable 安装程序(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 |
需要重启才能完成安装。该消息表示操作成功。 |
返回页首
附录 A:检测 .NET Framework 语言包
下表列出了您可以读取的注册表值,以检测计算机上是否已经安装了 .NET Framework 语言包。有关如何检测 .NET Framework 1.0 本地版本的详细信息,请参阅 MSDN 网站上的 .NET Framework Redistributable Package Technical Reference(英文)页面。
产品 | 注册表值 | ||||||
中文(简体)语言包 |
|
||||||
中文(繁体)语言包 |
|
||||||
捷克语语言包 |
|
||||||
丹麦语语言包 |
|
||||||
荷兰语语言包 |
|
||||||
芬兰语语言包 |
|
||||||
法语语言包 |
|
||||||
德语语言包 |
|
||||||
希腊语语言包 |
|
||||||
意大利语语言包 |
|
||||||
日语语言包 |
|
||||||
韩语语言包 |
|
||||||
挪威语语言包 |
|
||||||
波兰语语言包 |
|
||||||
葡萄牙语(巴西)语言包 |
|
||||||
葡萄牙语(葡萄牙)语言包 |
|
||||||
俄语语言包 |
|
||||||
西班牙语语言包 |
|
||||||
瑞典语语言包 |
|
||||||
土耳其语语言包 |
|
返回页首
附录 B:使用 Internet Explorer 检测 .NET Framework 3.0 的示例脚本
以下实例显示了在浏览器中运行的 JavaScript 程序如何检测 .NET Framework 3.0 是否正在运行。该脚本将搜索用户代理字符串,并基于搜索结果显示状态消息。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> // |
如果成功搜索到字符串“.NET Framework 3.0”,将显示以下消息:
此计算机有正确版本的 .NET Framework:3.0.04131.06。
此计算机的 userAgent 字符串为:Mozilla/4.0(可兼容;MSIE 6.0;
Windows NT 5.1;SV1;.NET CLR 1.1.4322;.NET CLR 2.0.50727;.NET CLR 3.0.04131.06)。
否则,会显示以下消息:
此计算机没有正确版本的 .NET Framework。
单击此处立即获得 .NET Framework 3.0。
此计算机的 userAgent 字符串为:Mozilla/4.0(可兼容;MSIE 6.0;
Windows NT 5.1;SV1;.NET CLR 1.1.4322;InfoPath.1;.NET CLR 2.0.50727)。