狀況
您必須呼叫GetOptionalCustomModifiers方法或GetRequiredCustomModifiers方法的泛型介面的ParameterInfo物件上的應用程式。當您在 Microsoft.NET Framework 3.5 Service Pack 1 (SP1) 安裝的電腦上執行這個應用程式時,請擲回例外狀況時,,並且您收到類似下列的錯誤訊息︰
處理的例外狀況發生在 mscorlib.dll 中的 'System.ExecutionEngineException' 的型別
此外,應用程式記錄檔會記錄事件識別碼 1023年。這個事件會類似下列︰ 事件 ID 1000 可能也會記錄在應用程式記錄檔。此事件類似下列︰
原因
之所以發生這個問題,是因為.NET Framework 3.5 SP1 中的問題。
解決方案
Hotfix 資訊
支援的 hotfix 可從 Microsoft 取得。不過,此 Hotfix 僅用於修正本文中所述的問題。此 Hotfix 只適用於發生此特定問題的系統上。此 hotfix 可能會接受其他測試。因此,如果此問題的影響不會很嚴重,我們建議您等候含此 hotfix 的下一版軟體更新。
若要下載此 hotfix,從 MSDN 程式碼庫,請造訪下列 Microsoft 網站︰http://code.msdn.microsoft.com/KB957541 注意MSDN 程式碼庫顯示 hotfix 是可用的語言。如果看不到您所使用的語言,它是因為代碼庫資源頁面未提供該語言的支援。 注意如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。如 Microsoft 客戶服務及支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站︰
http://support.microsoft.com/contactus/?ws=support注意如果 Windows Server 2008 或 Windows Vista Service Pack 1,您必須有此 hotfix,而是取得 hotfix 957542。Hotfix 957542 解決了這個問題,而是適用於這些作業系統。如需詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文︰
957542修正︰ 在電腦上正在執行.NET Framework 3.5 Service Pack 1,JIT 編譯器,原生映像產生器 (Ngen.exe) 使用 Mscorjit.dll 檔案的檔案可能會產生不正確的程式碼
先決條件
您必須套用此 hotfix 之後所安裝的.NET Framework 3.5 SP1。
重新啟動需求
您可能必須重新啟動電腦,如果正在使用中的任何更新的檔案。
Hotfix 取代資訊
此 hotfix 不會取代任何其他 hotfix。
檔案資訊
此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。這些檔案的日期和時間會以國際標準時間 (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描述