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

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 950986
Проблема
В Пакет обновления Microsoft платформа.NET Framework 2.0 1 метод ModuleBuilder.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 0x01000001An 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 с пакетом обновления, содержащего это исправление.

Для немедленного решения этой проблемы обратитесь в службу поддержки пользователей Майкрософт для получения исправления. Полный список телефонов службы поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-сайт корпорации Майкрософт:Примечание В особых случаях оплата, предусмотренная за обращение в службу поддержки может быть отменена, если специалист службы технической поддержки Майкрософт определит, что обновление будет решением проблемы. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.

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

Платформа.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 — последний просмотр: 03/22/2015 11:40:00 — редакция: 3.0

Microsoft .NET Framework 2.0

  • kbexpertiseadvanced kbfix kbqfe kbmt KB950986 KbMtru
Отзывы и предложения