Исправление: В .NET Framework 2.0 Service Pack 1, метод ModuleBuilder.GetTypeToken возвращает неправильный маркер

Переводы статьи Переводы статьи
Код статьи: 950986 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

В пакете обновления 1 для Microsoft .NET Framework 2.0ModuleBuilder.GetTypeTokenметод возвращает неправильный маркер.

Примечание.Эта проблема не возникает в .NET Framework 2.0.

Например код может содержать следующие сведения.
try
            {
                AssemblyBuilder assb = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("MyAssembly"), AssemblyBuilderAccess.ReflectionOnly);
                ModuleBuilder modb = assb.DefineDynamicModule("MyModule");
                Type t = typeof(object).MakeArrayType();
                int Token = modb.GetTypeToken(t).Token;
                Console.WriteLine("Token of type \"{0}\" is 0x{1}", t.ToString(), Token.ToString("x08"));
                Type t2 = modb.ResolveType(Token);
                Console.WriteLine("Token 0x{1} resolved to type \"{0}\"", t2.ToString(), Token.ToString("x08"));

            }
            catch (Exception xcpt)
            {
                Console.WriteLine("An exception of type {0} occurred:", xcpt.GetType());
                Console.WriteLine("{0}", xcpt.Message);
                Console.WriteLine("{0}", xcpt.StackTrace);
            }
После создания кода следующего вида выходных данных:
Token of type "System.Object[]" is 0x01000001
An exception of type System.TypeLoadException occurred:
Could not load type 'System.Object[]' from assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
   at System.ModuleHandle.ResolveType(Int32 typeToken, RuntimeTypeHandle* typeInstArgs, Int32 typeInstCount, RuntimeTypeHandle* methodInstArgs, Int32 methodInstCount)
   at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.Module.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.Module.ResolveType(Int32 metadataToken)
   at tryfix401752.Program.Main(String[] args) in D:\KB950986\Program.cs:line 26

Решение

Сведения об исправлении

Эта проблема может быть решена с помощью исправления, специально выпущенного корпорацией Майкрософт.. однако оно предназначено только для устранения проблемы, описанной в данной статье.. Предлагаемое исправление должно применяться исключительно в системах, где наблюдается описанная проблема.. Исправление может подвергаться дополнительному тестированию.. Таким образом Если вы не подвержены серьезно эту проблему, рекомендуется дождаться следующего пакета обновления платформы .NET Framework 2.0, содержащего это исправление.

Чтобы получить данное исправление и решить проблему немедленно, обратитесь в службу поддержки пользователей Майкрософт.. Полный список телефонов службы поддержки пользователей корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-узел корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=support
Примечание.В отдельных случаях, если специалистом службы технической поддержки Майкрософт будет определено, что решением проблемы является специально выпущенное исправление, оплата, предусмотренная за обращение в службы технической поддержки, может быть отменена.. Дополнительные услуги по технической поддержке, не связанные с данным исправлением, оплачиваются на стандартных условиях..

Предвартельные требования

Необходимо иметь .NET Framework 2.0 пакет обновления 1 для установки этого исправления.

Необходимость перезагрузки

После установки исправления перезагружать компьютер не требуется..

Сведения о заменяемых исправлениях

Это исправление не заменяет других исправлений..

СВЕДЕНИЯ О ФАЙЛАХ

Английская версия исправления содержит версии файлов, приведенные в следующей таблице (или более поздние).. Дата и время для файлов указаны во всеобщем скоординированном времени (UTC).. При просмотре сведений о файле, время изменяется на местное.. Чтобы узнать разницу между временем по Гринвичу и местным временем,Часовой поясна вкладкеДата и времяэлемент панели управления.
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
Mscordacwks.dll2.0.50727.1823822,28008 Апреля 2008 г.03: 36X86
Mscorlib.dll2.0.50727.18234,345,85608 Апреля 2008 г.03: 36X86
Mscorwks.dll2.0.50727.18235,852,67208 Апреля 2008 г.03: 36X86

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Применяется к»..

Дополнительная информация

Дополнительные сведения о терминах, используемых при описании обновлений программного обеспечения, см. в следующей статье базы знаний Майкрософт::
824684Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт
Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

Код статьи: 950986 - Последний отзыв: 28 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft .NET Framework 2.0
Ключевые слова: 
kbexpertiseadvanced kbfix kbqfe kbmt KB950986 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:950986

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com