При открытии файла .resources формы во время выполнения, может появиться сообщение об ошибке «System.Resources.MissingManifestResourceException»

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

В этой статье

Проблема

При запуске программы Visual Basic.NET или Visual Basic 2005, Visual C# .NET или Visual J#.NET Windows приложения может появиться следующее сообщение об ошибке или аналогичное при загрузке формы:
Объект Необработанное исключение типа «System.Resources.MissingManifestResourceException» в mscorlib.dll

Дополнительные сведения: не удалось найти любой соответствующие ресурсы для указанного языка и региональных параметров (или нейтрального языка и региональных параметров) в данной сборки. Убедитесь, что было неправильно внедренные или связанные «Form1.resources» в сборку «myApplication».

Базовое имя: Form1 locationInfo: Имя файла ресурсов WindowsApplication4.Form1: Form1.resources сборки: myApplication, версия = 1.0.781.33026, язык и региональные параметры = neutral, PublicKeyToken = null
При нажатии кнопки Перерыв в диалоговом окне ошибки и, если код выполняется интегрированной среды разработки (IDE), вы обнаруживаете, строка кода внутри Метод InitializeComponent инструкция вызывает неполадки. Например, при создании пример в разделе «Дополнительная информация», эта ошибка возникает в сочетании с помощью ImageList элемент управления. Несмотря на то, что сообщение об ошибке может ссылаться на другой управления, обратите внимание, что ресурсы.GetObject отображается в этой строке кода появляется сообщение об ошибке:
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));

Причина

Эта проблема возникает, если Форма класс не первый класс в модуле кода форма.

Примечание Один конкретных документов этой статьи причиной этой проблемы. Существует Возможно, другие ситуации, которые могут привести к такой же результат.

Решение

Чтобы устранить эту проблему, переместите все другого класса определения таким образом, чтобы они отображаются после определения класса формы.

Временное решение

Чтобы обойти эту проблему, измените Имя файла ресурса Свойство RESX-файл проекта. Чтобы сделать это, выполните следующие действия.
  1. Запустите Visual Studio.NET 2003 или Visual Studio 2005.
  2. Откройте проект, содержащий локализованные класса формы, в которой появляется сообщение об ошибке, описанное в разделе «Проблема».
  3. В обозревателе решений раскройте все папки.
  4. Щелкните правой кнопкой мыши Form1.resx, а затем нажмите кнопку Свойства.
  5. В Страницы свойств Form1.resx диалоговом окне разверните узел Свойства конфигурации, а затем нажмите кнопку Общие Из списка Управляемые ресурсы.
  6. Изменение Имя файла ресурса свойство из $(IntDir) / <placeholder></placeholder> .Form1.Resources Кому $(IntDir)/ <placeholder> .<b00></b00></placeholder>MyForm .Resources, а затем нажмите кнопку ОК.

    Примечание MyForm — Это имя класса класса формы, который необходимо локализовать.
  7. Нажмите сочетание клавиш CTRL + SHIFT + S, чтобы сохранить проект. Нажмите сочетание клавиш CTRL + SHIFT + B, чтобы построить решение.Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
    824495ИСПРАВЛЕНИЕ: Появляется сообщение об ошибке «missingmanifestresourceexception» при добавлении связанного ресурса в Visual Studio.NET 2003
  8. Нажмите клавишу F5 для запуска приложения. Приложение будет работать, а Form1, отображается форма.
.

Статус

Это поведение является особенностью.

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

Модуль кода формы может содержать несколько классов. При построение проекта, система построения необходимо решить, какой класс должен использоваться для Создайте файл .resources. Признак оформления система построения проекта Первый класс в модуле кода, что класс, на котором .resources на основе файлов. Файл .resources не называется согласно этому классу имя формы. В большинстве случаев эти имена совпадают. Тем не менее если Эти имена отличаются, появляется сообщение об ошибке, описанное в В разделе «Проблема».

При загрузке формы во время выполнения Метод InitializeComponent метод может потребоваться получить объекты из файла .resources. Метод InitializeComponent Поиск Form_Name.Resources файл сборки. Так как исходный Form_Nameфайл .resources не была создана или связанный для сборки неудачной попытки извлечь файл .resources.

Действия по воспроизведению проблемы

  1. Создание проекта приложения Windows в Visual Basic.NET или Visual Basic 2005 Visual C#.NET или Visual J#.NET. По умолчанию создается форма Form1.Примечание В Visual Studio 2005 появляется следующее предупреждение:
    Невозможно добавить компоненты в режиме локализации. Выберите свойство языка вернуться в форму по умолчанию и добавление компонентов (по умолчанию).
    Примечание Необходимо изменить код в Visual Basic 2005. По умолчанию Visual Basic создает два файла проекта при создании проекта Windows Forms. Если форму с именем Form1, два файла, которые представляют собой форму именами Form1.vb и Form1.Designer.vb. Напишите код в файл Form1.vb. Конструктор Windows Forms записывает код в файле Form1.Designer.vb. Конструктор Windows Forms использует ключевое слово partial разделить на два отдельных файла реализации класса Form1. Такое поведение предотвращает код, созданный конструктором перемежаемых кода.

    Для получения дополнительных сведений о новых улучшений языка Visual Basic 2005 посетите следующий веб-узел Microsoft Developer Network (MSDN):
    http://msdn2.Microsoft.com/en-us/library/ms379584 (vs.80) .aspx
    Для получения дополнительных сведений о разделяемых классов и в конструкторе Windows Forms посетите веб-узле MSDN:
    http://msdn2.Microsoft.com/en-us/library/ms171843.aspx
  2. Добавить ImageList элемент управления в форму Form1.
  3. Добавить файл значка ImageList элемент управления.
  4. В модуле кода Form1 добавьте следующий код перед Определение формы Form1: Visual Basic.NET:
    Public Class someClass
    End Class
    					
    Visual C#.NET и Visual J#.NET:
    public class someClass
    {
    }
    					
  5. Выполните построение проекта. Обратите внимание, что построение проекта успешно.
  6. Запустите проект. Обратите внимание, что появляется сообщение об ошибке описанного в разделе «Проблема».

Свойства

Код статьи: 318603 - Последний отзыв: 7 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual J# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
Ключевые слова: 
kbvs2005applies kbvs2005swept kbprb kbmt KB318603 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:318603

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

 

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