Intereting Posts
Mimic File.Move, если назначение уже существует Захват нажатия клавиши без фокуса в консоли Как мое приложение ASP.NET автоматически получает настройки SMTP из web.config? Как сохранить изображение в базе данных и отобразить его в представлениях в MVC 4? AutoMapper бросает StackOverflowException при вызове ProjectTo () на IQueryable Почему эта ошибка, «Последовательность не содержит элементов», происходит? как удалить возвращаемые каретки, символы новой строки, пробелы из строки Как я могу программно управлять микшером Windows 7? Какое событие вызывает изменение ценности в combobox в DataGridViewCell? Самый простой способ использования пользовательского атрибута SNMP для локального принтера? Почему я получаю «System.Data.DataRowView» вместо реальных значений в моем списке? iCalendar не создает событие для органайзера Эквивалент reinterpret_cast C ++ в C # Как заполнить модели представления с помощью запроса linq ASP.NET MVC 5 Entity Framework

Не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры

Я создал сборку и позже ее переименовал.

Затем я начал получать ошибки времени выполнения при вызове:

toolsMenuName = resourceManager.GetString(resourceName); 

Переменная resourceName«enTools» во время выполнения.

Не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что «Jfc.TFSAddIn.CommandBar.resources» был правильно встроен или связан в сборку «Jfc.TFSAddIn» во время компиляции или что все необходимые сборочные сборки необходимы для загрузки и полной подписки.

Код:

 string resourceName; ResourceManager resourceManager = new ResourceManager("Jfc.TFSAddIn.CommandBar", Assembly.GetExecutingAssembly()); CultureInfo cultureInfo = new CultureInfo(_applicationObject.LocaleID); if(cultureInfo.TwoLetterISOLanguageName == "zh") { CultureInfo parentCultureInfo = cultureInfo.Parent; resourceName = String.Concat(parentCultureInfo.Name, "Tools"); } else { resourceName = String.Concat(cultureInfo.TwoLetterISOLanguageName, "Tools"); } toolsMenuName = resourceManager.GetString(resourceName); // EXCEPTION IS HERE 

Я вижу файл CommandBar.resx, включенный в проект, я могу открыть его и увидеть там строку «enTools». Кажется, что либо ресурсы не включены в сборку, либо ресурсы включены, но .NET не может разрешить имя.

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

Что касается этого случая, проверьте, имеет ли assembly, содержащая ресурсы, пространство имен по умолчанию для одного и того же текста (Project-> Properties-> Default namespace, в VS)

Проверьте также, если файл resx имеет свойство BuildAction, установленное в «Embedded resource»

Звучит похоже на вопрос, который у нас был. Пространство имен было неправильным в дизайне файла ресурса. Я исправил его, вручную перезапустив пользовательский инструмент в файле resx.

Щелкните правой кнопкой мыши файл your.resx и выберите «Выполнить пользовательский инструмент».

Я уверен, что у вас уже есть ответ, но на всякий случай:

  1. Вы можете просмотреть свое ManifestResourceName, вызвав

     System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames() 

    Убедитесь, что имя манифеста и ваше имя в вызове GetString () идентичны.

  2. Кроме того, убедитесь, что у вас есть правильное пространство имен в файле designer.resx:

     namespace Jfc.TFSAddIn { ... global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager( "Jfc.TFSAddIn.CommandBar", typeof(CommandBar).Assembly); ... } 
  3. Открытые свойства файла resx: «Build Action» должно быть «Embedded Resource»

Для меня источником проблемы было именование файлов rex, начинающихся с числа:

20160216_tranlation.resx

Я должен был добавить символ подчеркивания _ перед именем файла GetGlobalResourceObject при вызове GetGlobalResourceObject :

 public static string getResource(string key) { return HttpContext.GetGlobalResourceObject("_20160216_tranlation", key).ToString(); } 

Этот ответ решил проблему для меня! GetGlobalResourceObject

Я исправил пространство имен в файле конструктора (Resources.Designer.cs) в статическом свойстве ResourceManager, и это сработало для меня.

См. Следующий код:

 [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XYZAssembly.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } 

Я добавил временный class в моей Form.cs во время (тестирование отладки), из-за которого было вызвано это исключение. Файл Form.resx (Name || Resource ID) был изменен на имя временного classа вместо имени classа Form. Это вызвало у меня проблему. I (исправлено || облегчено), создав отдельный файл для моего временного classа в проекте.

Одним из решений является изменение свойства файла resx из содержимого в Embedded Resource и его создание. Убедитесь, что на этот раз u vil get

Я столкнулся с этой проблемой в Xamarin.Forms, когда я попытался переименовать проект, ресурсы больше не могли быть загружены с тем же заявленным текстом ошибки.

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

  ResXFileCodeGenerator TextResources.Designer.cs YourNewNamespaceName.TextResources.resources Designer  

Также следите за автогенерированным classом при его восстановлении, пространство имен, указанное в нем, может измениться.

Надеюсь, это поможет кому-то, кто попал в ту же ситуацию.

Получил эту ошибку, когда добавил class ABOVE в class частичной формы в моем приложении форм Windows.

Он ушел, когда я переместил class BELOW на частичный class формы.