发布日期:2012 年 5 月 31 日
要查看最新版本的自述文件,请单击此处。
1.1.1 .NET Framework 4.5 RC 语言包在 Windows 8 Release Preview 上不可用
.NET Framework 4.5 RC 语言包不能安装在 Windows 8 Release Preview 操作系统上,因为 .NET Framework 4.5 RC 是该操作系统的组件。.NET Framework 4.5 RC 语言包可以安装在较早的受支持的 Windows 版本上。解决此问题的方法:
下载适用于 Windows 8 Release Preview 操作系统的语言包,或安装本地化版本的 Windows 8 Release Preview 以获取 .NET Framework 4.5 RC 的本地化资源。没有已知问题。
1.3.1.1 安装 .NET Framework 4.5 以后,在 Visual Studio 2010 的生成中出现 MSB3270 警告
Visual Studio 2010 中的某些项目类型(例如 C++ 项目)可设置 Platform 属性,但不可设置 PlatformTarget 属性。不设置 PlatformTarget 时,MSBuild 将无法确定项目体系结构(例如 x86),而只能假定项目目标为“任意 CPU”并引发体系结构不匹配警告 MSB3270,即使项目和引用都是针对同一体系结构也是如此。
解决此问题的方法:
- 或 -
- 或 -
1.3.1.2 .NET Framework 4.5 RC 二进制文件无法再分发
根据 .NET Framework 4.5 RC 的 Microsoft 软件许可条款,您不能将 .NET Framework 4.5 RC 二进制文件与您的应用程序一起再分发。
解决此问题的方法:
您的客户可以从 .NET Framework 下载中心下载操作系统支持的 .NET Framework 4.5 RC。.NET Framework 4.5 RC 是随 Windows 8 Release Preview 和 Windows Server 2012 提供的,因此不必在这些操作系统上单独安装。
1.3.1.3 Windows 运行时 IRandomAccessStream 接口会在读过文件结尾时报告无效位置
将 Windows 随机访问流 (IRandomAccessStream) 转换为托管流时,托管流将默认使用一个缓冲区。当文件中的最后一个字节填充到缓冲区中时,该缓冲区会读过文件结尾并报告位置不正确。此问题影响使用该位置的所有代码;例如,当您使用 System.IO.Compression.ZipArchive 类从 Windows 运行时流读取数据时,就会出现这种情况。
问题发生位置示例:
Windows.Storage.Pickers.FileOpenPicker fop = new Windows.Storage.Pickers.FileOpenPicker();
fop.FileTypeFilter.Add(".zip");
StorageFile file = await fop.PickSingleFileAsync();
using (System.IO.Stream s = await file.OpenStreamForReadAsync())
{
using (var za = new System.IO.Compression.ZipArchive(s))
{
foreach (var entry in za.Entries) // Fails here....
{
// Do something here
}
}
}
解决此问题的方法:
使用长度为零的缓冲区打开流。调用 file.OpenReadAsync() 而非 file.OpenStreamForReadAsync() 方法,然后对生成的 Windows 运行时流调用 AsStreamForRead(0)。
例如:
using (var ws = await file.OpenReadAsync())
{
using (var s = ws.AsStreamForRead(0))
{
using (var za = new System.IO.Compression.ZipArchive(s)) // This will now work correctly.
{
// Do something here
}
}
}
没有已知问题。
没有已知问题。
1.3.4.1 TPL 数据流已从 .NET Framework 4.5 RC 再发行版本中删除
任务并行库 (TPL) 数据流 (System.Threading.Tasks.Dataflow.dll) 已从 .NET Framework 4.5 RC 再发行版本中删除,转而使用带外传送机制。解决此问题的方法:
若要安装 System.Threading.Tasks.Dataflow.dll,请在 Visual Studio 2012 RC 中打开您的项目,再从“项目”菜单中选择“管理 NuGet 包”,然后联机搜索 Microsoft.Tpl.Dataflow 包。
1.3.5.1 适用于 Windows Metro 风格应用程序的 MEF 已从 .NET Framework 4.5 RC 再发行版本中删除
适用于 Windows Metro 风格应用程序 (System.ComponentModel.Composition.*.dll) 的 Managed Extensibility Framework (MEF) 已从 .NET Framework 4.5 RC 再发行版本中删除,转而使用带外传送机制。
解决此问题的方法:
若要安装 System.ComponentModel.Composition.*.dll,请在 Visual Studio 2012 RC 中打开您的项目,再从“项目”菜单中选择“管理 NuGet 包”,然后联机搜索 Microsoft.Composition 包。
没有已知问题。
没有已知问题。
1.3.8.1 默认 HTTPS 协议映射导致问题
如果已在 IIS 中承载了 Windows Communication Foundation (WCF) 版本 4 服务并启用了 HTTP 和 HTTPS 绑定,则在遇到下述情形时,WCF 4.5 中新的默认 HTTPS 终结点功能可能会导致问题:
<protocolMapping><add scheme="http" binding="wsDualHttpBinding"/></protocolMapping>
升级到 WCF 4.5 时,您可能会看到以下错误:
协定需要使用会话,但“BasicHttpsBinding”绑定不支持该会话,或者未进行适当的配置以支持该会话。
说明:在执行当前 Web 请求的过程中发生未经处理的异常。有关错误和代码中发出该错误的位置的更多信息,请查看堆栈跟踪。
此错误之所以发生,是因为针对 WCF 服务(使用新的 BasicHttpsBinding 绑定)公开的默认 HTTPS 终结点不支持双工协定。
绑定实例已进行关联,可侦听 URI“https://domain/address/service.svc”。如果两个终结点要共享同一 ListenUri,则必须也共享同一绑定对象实例。已在 AddServiceEndpoint() 调用或 config 文件中,或同时在 AddServiceEndpoint() 调用和 config 文件中指定两个冲突的终结点。
解决此问题的方法:
若要解决这些问题,请将 <remove scheme=”https” /> protocolMapping 添加到 web.config 文件中,或者在服务标记内显式定义一个 HTTP 服务终结点。
1.3.8.2 IIS 承载的 WCF 服务(使用启用了 HTTP GET 和非 HTTP 的终结点)所导致的错误
如果您的设置包括以下内容:
您可能会遇到以下错误:
异常:System.ServiceModel.ServiceActivationException:“/.../.../<serviceName>.svc”服务因为在编译过程中出现异常而无法激活。异常消息为:本服务的安全设置要求进行“匿名”身份验证,但尚未为承载该服务的 IIS 应用程序启用该验证。---> System.NotSupportedException:本服务的安全设置要求进行“匿名”身份验证,但尚未为承载该服务的 IIS 应用程序启用该验证。
解决此问题的方法:
若要解决该问题,可在 IIS 中启用匿名身份验证模式(至少对 myservice.svc-Uri 应该如此),或者使用 ClientCredentialType==Windows/InheritedFromHost 手动创建 HTTP GET 元数据终结点。
没有已知问题。
1.3.10.1 工作流设计器中的某些新功能可能导致现有解决方案出现问题
在 .NET Framework 4.5 RC 中,工作流设计器包括以下更改:
解决此问题的方法:
使用上面的列表中讨论的针对每个问题的解决方法。
1.3.10.2 将 Workflow Identity 参数与工作流一起使用时主机无法启动
.NET Framework 4.5 RC 包括一个新的工作流参数 Workflow Identity,该参数保存在 SQL 工作流实例存储中。如果使用包含此参数且参数值不为 null 的工作流,则必须更新实例存储,以便它能存储该值。否则,主机将无法启动。
解决此问题的方法:
通过在以下位置运行脚本来更新 SQL 工作流实例存储:
%windir%\Microsoft.NET\Framework\<version>\SQL\<language>\SqlWorkflowInstanceStoreSchemaUpgrade.sql
2.1 升级到 Windows 8 Release Preview 不会更新 .NET Framework 4 语言包
如果您从 Windows 7 操作系统升级到 Windows 8 Release Preview,则不会删除或更新您之前安装在计算机上的 .NET Framework 4 语言包。此问题会影响与升级后的 Windows 8 Release Preview 的语言(不包括英语)不匹配的语言包。例如,如果您具有英语版本的 Windows 7 旗舰版和 .NET Framework 4 德语语言包,并将您的系统升级到英语版本的 Windows 8 Release Preview,则该语言包将保留在您的系统上,但不会更新到 .NET Framework 4.5 RC。
解决此问题的方法:
在升级到 Windows 8 Release Preview 之前卸载 .NET Framework 4 语言包,或在升级后安装适当的 Windows 8 Release Preview 语言包。