c# + SharpDevelop:改变根命名空间后搞砸了resourcemanager
本文关键字:resourcemanager 命名空间 SharpDevelop 改变 | 更新日期: 2023-09-27 18:16:46
认识到我的项目已经在使用的solutionname下存在,我决定重命名整个解决方案。我需要这样做,因为我想在我的主页上共享源代码以及应用程序本身,而不希望它看起来像其他已经存在的项目的副本。
我将每个文件中的所有名称空间以及程序集名称,根名称空间和资源管理器实例调用从"OldName"更改为"NewName",如下所示:
resManager = new ResourceManager("NewName.Resources.Manifest", System.Reflection.Assembly.GetExecutingAssembly());
这样做之后,我重新编译,没有任何错误。不幸的是,当调用第一个resManager.GetString();
方法时,我得到一个System.Resources.MissingManifestResourceException
的运行时错误。所以应用程序不能再看到资源了。但是为什么呢?
文件夹结构和所有其他源文件没有更改。我恢复了备份,发现不可能简单地更改根名称空间和resourcemanager
。一定有什么我不知道的
任何帮助将是伟大的:-)
我是这样做的:
namespace NewName
{
//...
ResourceManager resManager;
CultureInfo cultureInfo;
Settings settingsFromFile = new Settings();
settingsFromFile.readSettings();
if (settingsFromFile.Language == "german")
cultureInfo = new CultureInfo("de");
else
cultureInfo = new CultureInfo("en");
resManager = new ResourceManager("NewName.Resources.Manifest", System.Reflection.Assembly.GetExecutingAssembly());
//...
contextMenuStripDoFencyStuff.MenuItems.Add(resManager.GetString("contextMenuStripDoFencyStuffText",cultureInfo)); <-- this is where the exception occurs
}
resx文件的名称为"Manifest.de.resx"和"Manifest.en.resx"。这些文件位于"ProjectFolder/Resources/"。
好了,我让它恢复工作了。对于每个有相同经历的人来说,解决方案如下:
我用解决方案向导开始了一个新的解决方案。将所有项目添加回其中,包括源文件并编译。
这一切。似乎是SharpDevelop特有的问题?!
问候,史蒂文。