更改命名空间后,C# resx 文件不起作用

本文关键字:resx 文件 不起作用 命名空间 | 更新日期: 2023-09-27 17:57:11

我正在处理现有的Windows表单应用程序。我只需要进行一些修改,在这些更改过程中,我遇到了还需要重命名现有命名空间的情况。现在重命名该命名空间后,我的项目没有运行。虽然它编译得很好,但在以下代码行中断

ImageList il = new ImageList();
ImageList = il;            
il.Images.Add((Image)new Bitmap(GetType(), "Images.ImageFileName.png"));//when this line is executed a dialog box appears and says that "there is no source code available for current location"

现在,由于我是.net世界的新手,所以我研究了这个问题,并认为它是由于namspace的变化而引起的。我还尝试在 Resources.Designer 中重命名命名空间.cs但它也没有解决我的问题

更改命名空间后,C# resx 文件不起作用

谢谢大家。

我自己找到解决方案。在这里发布解决方案的目的是可能是其他人从中受益。事实上,这是我的一种粗心大意,因为我忘记更改属性"默认命名空间"的值此属性包含旧命名空间,这就是为什么我的资源文件始终指向旧命名空间的原因

右键单击Resources.resx,选择Properties,找到Custom Tool Namespace,设置所需的命名空间。

另外,为什么不以Resources.ResrouceName .

下面是一个快速教程,如何设置资源,这样就不必强制转换和考虑命名空间:http://msdn.microsoft.com/en-us/library/7k989cfy%28v=vs.80%29.aspx

尝试删除第二行,ImageList = il; . 它所做的是用类的实例替换类。不好。

我也遇到了这个问题。我不得不重命名应用程序的命名空间。之后,设计人员忽略了所有资源,尽管它们在构建解决方案并运行应用程序后出现。

发现即使我重命名了命名空间,它也没有在"默认命名空间"文本框下的"应用程序属性"中替换。我已经更改了旧的命名空间,该命名空间仍然与新的名称空间一起出现在那里,之后它工作正常。

位图构造函数的特定重载将给定类型的命名空间与资源的字符串名称组合在一起,并在程序集清单中查找匹配项。所以在这种情况下,它将是你的类的命名空间 + ".Images.ImageFileName.png" .我猜那不存在。通过右键单击 Resources.resx 并选择属性来更改它的命名空间,执行重建并查看它现在是否有效。