C# 重命名命名空间后的.resx文件无效
考虑以下情况:C# 重命名命名空间后的.resx文件无效,c#,winforms,visual-studio-2010,namespaces,resx,C#,Winforms,Visual Studio 2010,Namespaces,Resx,考虑以下情况: 在我的Windows窗体应用程序中,我有一个窗体 该表单有一个.resx文件 表单使用来自另一个程序集(“Other.dll”)的类(“OtherClass”) “Other.dll”与主应用程序构建在相同的VisualStudio 2010解决方案中 (只是同一解决方案中的一个单独项目) 在主项目(Windows窗体应用程序)中,我 添加了对“Other.dll”项目的引用 一切正常(如预期) 现在我需要将“Other.dll”中包含的类型的命名空间从“Old.namesp
- 在我的Windows窗体应用程序中,我有一个窗体李>
- 该表单有一个.resx文件
- 表单使用来自另一个程序集(“Other.dll”)的类(“OtherClass”)
- “Other.dll”与主应用程序构建在相同的VisualStudio 2010解决方案中 (只是同一解决方案中的一个单独项目)
- 在主项目(Windows窗体应用程序)中,我 添加了对“Other.dll”项目的引用
“无效的Resx文件。无法加载.Resx文件中使用的类型Old.Namespace.OtherType,Other,Version 1.0.0,Culture=neutral,PublicKeyToken=null。请确保已将必要的引用添加到项目中。第1521行,位置5”
显然,.resx文件仍然从某处引用具有旧名称空间的类型。“某处”似乎来自.resx文件的二进制部分 问题: 如何使.resx理解它现在必须引用新类型(使用更改的命名空间)
请帮帮我,我真的不知道怎么继续 您需要手动打开resx文件,并将此二进制资源的类型名称更改为新的正确类型名称。我猜这是一个非标准(即不是字符串或图像)资源,它是直接手动添加到resx文件中的
我相信这些只能在ResX编辑器的“其他”部分查看-它们不能通过它添加。我也有同样的问题,解决方法是从ResX文件中删除数据部分我也有同样的问题,在尝试了其他几个选项后,我按照Stefania Mereut的方法从resx文件中删除了数据部分。当我重新添加资源时,它显然正确地重写了数据部分。我在更新对新版本dll的引用时遇到了这个问题。在我的例子中,引用有选项“specific version”=true。在这种情况下,不可能在res文件中反序列化类的旧版本,因为它包含旧类的版本。
我将引用的“特定版本”选项从“true”更改为“false”,所有操作都再次正常运行。您是否在resx上尝试过“运行自定义工具选项”(右键单击)?是否尝试删除对Other.dll的引用并重新添加?可能是“copy local=True”导致了问题..否。但是当我在解决方案资源管理器中右键单击.resx文件时,我在弹出菜单中没有看到任何“运行自定义工具”???你能说得更具体一点吗?对不起,我的评论与另一条有冲突。是的,我试图删除引用并将其添加回。同样的问题。