更改名称空间后,C#resx文件无法正常工作

时间:2011-05-19 06:21:26

标签: c# winforms embedded-resource resx

我正在处理现有的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中重命名命名空间 但它也没有解决我的问题

5 个答案:

答案 0 :(得分:5)

全部谢谢。

我自己找到解决方案。在这里发布解决方案的目的可能是其中一些人从中受益。 事实上它是我身边的一种粗心,因为我忘了改变Property“Default NameSpace”的值,这个属性包含旧命名空间,这就是为什么我的资源文件alwasy指向旧命名空间

答案 1 :(得分:3)

尝试摆脱第二行ImageList = il;。它正在做的是用类的实例替换类。不好。

答案 2 :(得分:3)

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

此外,为什么不以Resources.ResrouceName等类型的方式引用您的资源。

以下是一个快速教程,您可以如何设置资源,这样您就不必投射和考虑名称空间:http://msdn.microsoft.com/en-us/library/7k989cfy%28v=vs.80%29.aspx

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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