.NET 4.0 до 3.0 не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры - PullRequest
0 голосов
/ 13 февраля 2012

В Интернете я нашел бесплатную программу .NET 4.0, но мне пришлось скопировать код для компиляции VS2008. Я думаю, что способы обработки культур должны быть разными в версиях .NET. Я получаю эту ошибку:

System.Resources.MissingManifestResourceException: не удалось найти ресурсы, соответствующие указанной культуре или нейтральной культура. Убедитесь, что «A.B.C.Resources.ExceptionMessage.resources» был правильно встроенный или связанный в сборку "A.B.C.csproj" при компиляции время или что все необходимые спутниковые сборки могут быть загружены и полностью подписано.

Это C # .dll (библиотека классов), и я вызываю его из консольной программы. Ему назначен файл с сильным ключом.

Это взрывает любое утверждение, подобное этому:

return ResourceManager.GetString("XYZ");

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

Ответы [ 3 ]

2 голосов
/ 13 февраля 2012

Когда я копировал файлы и перестраивал новый проект VS2008, в обозревателе решений Visual Studio для файла ресурсов не было иерархических отношений.Например, ExceptionMessage.resx и ExceptionMessage.Designer.cs были на одном уровне;тогда как обычно файл Designer.cs имеет отступ в файле .resx.Я не уверен, что это случилось.

Итак, я создал новый файл .resx и аккуратно скопировал его с помощью программ NotePad и filemerge, фрагментов файла .resx и файла .cs.Тогда все работало нормально.

Я до сих пор не совсем уверен, в чем проблема, но я знаю, что это исправлено.Потерял около 5 часов сегодня по этому вопросу.

0 голосов
/ 24 июля 2013

У меня возникла эта проблема, и я обнаружил, что причина связана с именем сборки и пространством имен по умолчанию из свойств проекта. Это помогает установить их обоих одинаково или что-то в этом роде.

0 голосов
/ 13 февраля 2012

Возможно, стоит сравнить свойства [assembly: AssemblyCulture("")] в сборках из решений как версии 4, так и версии 3.

По умолчанию - я думаю - нет.

Документация MSDN :

Помещение этого атрибута в сборку и использование чего-либо, кроме пустой строки ("") для имени культуры, сделает эту сборку похожей на спутниковую сборку, [...]

Возможно, вам нужно определить это явно, ИЛИ оно уже определено, но не должно быть?

...