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/"

c# + SharpDevelop:改变根命名空间后搞砸了resourcemanager

好了,我让它恢复工作了。对于每个有相同经历的人来说,解决方案如下:

我用解决方案向导开始了一个新的解决方案。将所有项目添加回其中,包括源文件并编译。

这一切。似乎是SharpDevelop特有的问题?!

问候,史蒂文。