症状

具有一个泛型接口的ParameterInfo对象调用GetOptionalCustomModifiers方法或GetRequiredCustomModifiers方法的应用。具有 Microsoft.NET Framework 3.5 Service Pack 1 (SP1) 安装的计算机上运行此应用程序时,引发异常,并且您收到类似于以下内容的错误消息︰

Mscorlib.dll 中发生未处理的异常的类型 System.ExecutionEngineException

此外,应用程序日志中会记录事件 ID 1023。该事件类似于以下︰ 事件 ID 1000 还可能会记录在应用程序日志中。该事件类似于以下内容︰

原因

出现此问题是由于.NET Framework 3.5 SP1 中的问题。

解决方案

修补程序信息

可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

若要从 MSDN 代码库中下载此修补程序,请访问下面的 Microsoft Web 站点:

http://code.msdn.microsoft.com/KB957541
注意:MSDN 代码库显示获取此修复程序的语言。如果看不到列出的语言,这是因为代码库的资源页不可用这种语言。


注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰

http://support.microsoft.com/contactus/?ws=support注意:如果为 Windows Server 2008 或 Windows Vista Service Pack 1,您必须拥有此修补程序,而是获取修补程序 957542。957542 修复程序可以解决此问题,可供这些操作系统。的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

957542解决︰ 在计算机上正在运行的.NET Framework 3.5 Service Pack 1,JIT 编译器和 Mscorjit.dll 文件使用本机映像生成器 (Ngen.exe) 可能会生成不正确的代码

系统必备组件

您必须具有要应用此修补程序的安装.NET Framework 3.5 SP1。

重启要求

您可能需要重新启动计算机,如果任何更新的文件正在使用。

修补程序替换信息

此修补程序不替换任何其他修补程序。

文件信息

此修复程序的英文版具有的文件属性 (或更新的文件属性)在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。

Windows 2000、 Windows XP 和 Windows Server 2003,x86 版本

文件名称

文件版本

文件大小

日期

时间

Mscordacwks.dll

2.0.50727.3068

992,264

16-Sep-2008

13:13

Mscorlib.dll

2.0.50727.3068

4,546,560

16-Sep-2008

13:13

Mscorwks.dll

2.0.50727.3068

5,815,808

16-Sep-2008

13:13

Windows 2000、 Windows XP 和 Windows Server 2003,x64 版本

文件名称

文件版本

文件大小

日期

时间

平台

Mscordacwks.dll

2.0.50727.3068

992,264

16-Sep-2008

13:13

x86

Mscorlib.dll

2.0.50727.3068

4,546,560

16-Sep-2008

13:13

x86

Mscorwks.dll

2.0.50727.3068

5,815,808

16-Sep-2008

13:13

x86

Mscordacwks.dll

2.0.50727.3068

1,767,944

16-Sep-2008

10:33

x64

Mscorlib.dll

2.0.50727.3068

4,562,944

16-Sep-2008

10:33

x64

Mscorwks.dll

2.0.50727.3068

10,079,744

16-Sep-2008

10:33

x64

Windows 2000、 Windows XP 和 Windows Server 2003,IA-64 版本

文件名称

文件版本

文件大小

日期

时间

平台

Mscordacwks.dll

2.0.50727.3068

992,264

16-Sep-2008

13:13

x86

Mscorlib.dll

2.0.50727.3068

4,546,560

16-Sep-2008

13:13

x86

Mscorwks.dll

2.0.50727.3068

5,815,808

16-Sep-2008

13:13

x86

Mscordacwks.dll

2.0.50727.3068

3,087,880

16-Sep-2008

10:44

IA-64

Mscorlib.dll

2.0.50727.3068

4,005,888

16-Sep-2008

10:44

IA-64

Mscorwks.dll

2.0.50727.3068

20,153,856

16-Sep-2008

10:44

IA-64

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

详细信息

重现问题的步骤

要重现此问题,创建 Microsoft Visual C# 项目,然后在已安装.NET Framework 3.5 SP1 的计算机上运行以下代码。

using System;namespace GetCustomModifiersBug
{
public interface IGenericInterface<T1, T2>
{
void GenericIfcMethod<T3>(T3 t3);
}
class Program
{
static void Main()
{

Type ifc = typeof(IGenericInterface<int, int>);
// Either of the following lines on their own will cause the problem
ifc.GetMethod("GenericIfcMethod").GetParameters()[0].GetOptionalCustomModifiers();
ifc.GetMethod("GenericIfcMethod").GetParameters()[0].GetRequiredCustomModifiers();

}
}
}

参考资料

有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

用于描述 Microsoft 软件更新的标准术语的824684说明

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?

谢谢您的反馈!

×