Что означает MissingManifestResourceException и как это исправить?

document.write("\n");

не будет работать, если вы выполняете его (document.write();) несколько раз.

Я предлагаю вам пойти на:

document.write("<br>");

PS Я знаю, что люди сказали этот ответ выше, но не нашли разницу в любом месте так:)

141
задан nvoigt 11 October 2017 в 14:50
поделиться

5 ответов

Все, что мне нужно было сделать, чтобы исправить эту проблему, было правильно -щелкните файл Resources.resx в обозревателе решений и щелкните Запустить настраиваемый инструмент . Это повторно генерирует автоматически сгенерированный файл Resources.Designer.cs .

Если файл .resx был добавлен в проект вручную, для свойства Custom Tool этого файла должно быть установлено значение «ResXFileCodeGenerator» .

Проблема возникает из-за несоответствия пространств имен, которое возникает, если вы изменяете «пространство имен по умолчанию» сборки в настройках проекта. (Я изменил его с (ранее) «Серверы» на (сейчас) «RT.Servers» .)

В автоматически сгенерированном коде в Resources.Designer .cs , есть следующий код:

internal static global::System.Resources.ResourceManager ResourceManager {
    get {
        if (object.ReferenceEquals(resourceMan, null)) {
            global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Servers.Resources", typeof(Resources).Assembly);
            resourceMan = temp;
        }
        return resourceMan;
    }
}

Литеральную строку «Servers.Resources» нужно было изменить на «RT.Servers.Resources» . Я сделал это вручную, но с таким же успехом можно было бы запустить специальный инструмент.

)

В автоматически сгенерированном коде в Resources.Designer.cs есть следующий код:

internal static global::System.Resources.ResourceManager ResourceManager {
    get {
        if (object.ReferenceEquals(resourceMan, null)) {
            global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Servers.Resources", typeof(Resources).Assembly);
            resourceMan = temp;
        }
        return resourceMan;
    }
}

Буквальная строка «Servers.Resources» должна быть изменена на «RT.Servers.Resources» . Я сделал это вручную, но с таким же успехом можно было бы запустить специальный инструмент.

)

В автоматически сгенерированном коде в Resources.Designer.cs есть следующий код:

internal static global::System.Resources.ResourceManager ResourceManager {
    get {
        if (object.ReferenceEquals(resourceMan, null)) {
            global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Servers.Resources", typeof(Resources).Assembly);
            resourceMan = temp;
        }
        return resourceMan;
    }
}

Литеральная строка «Servers.Resources» должна быть изменена на «RT.Servers.Resources» . Я сделал это вручную, но с таким же успехом можно было бы запустить специальный инструмент.

229
ответ дан 23 November 2019 в 22:52
поделиться

Я встретился с этой проблемой с проектом управляемого С++ на основе WinForms после переименования глобального пространства имен (не вручную, но с инструментом Rename VS2017).

решение просто, но не упоминается в другом месте.

необходимо измениться RootNamespace запись в vcxproj-файле для соответствия пространству имен C++.

0
ответ дан 23 November 2019 в 22:52
поделиться

Также та же ошибка может произойти при помещении нового класса в исходный код класса созданной формы разработчика.

Этот новый класс может быть удален и помещен в другой cs файл.

(По крайней мере, в моем случае это было проблемой...)

0
ответ дан 23 November 2019 в 22:52
поделиться

Из на странице поддержки Microsoft :

Эта проблема возникает, если вы используете локализованный ресурс, который существует во вспомогательной сборке, созданной вами с помощью файла .resources, который имеет неподходящее имя файла. Эта проблема обычно возникает, если вы вручную создаете вспомогательную сборку.

Чтобы обойти эту проблему, укажите имя файла .resources при запуске Resgen.exe. При указании имени файла RESOURCES убедитесь, что имя файла начинается с имени пространства имен вашего приложения. Например, выполните следующую команду в командной строке Microsoft Visual Studio .NET, чтобы создать RESOURCES-файл с именем пространства имен вашего приложения в начале имени файла:

Resgen strings.CultureIdentifier.resx 
MyApp.strings.CultureIdentifier.resources
-3
ответ дан 23 November 2019 в 22:52
поделиться

Я только что столкнулся с этой проблемой сегодня и нашел эту страницу справки и поддержки Microsoft , которая действительно помогала решить проблему.

У меня была пара делегатов в в верхней части моего файла в глобальном пространстве имен, и внезапно я получил исключение MissingManifestResourceException при запуске программы, в этой строке:

this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));

Затем я переместил делегатов в пространство имен, получил та же ошибка. Наконец, я поместил делегатов в единственный класс в этом файле, и ошибка исчезла, но мне не нужны делегаты в этом классе или пространстве имен.

Затем я наткнулся на ссылку выше, в которой говорилось

To Решите эту проблему, переместите все определения других классов так, чтобы они появлялись после определения класса формы.

Я поставил делегатов (которые я бы не стал рассматривать "

34
ответ дан 23 November 2019 в 22:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: