我在解决方案中有多个项目,我希望他们共享一个图形资源池。我试过这个:
1 - 创建了project1,使其资源文件公开,为其添加了一些图形。
2 - 创建了project2,Alt +将Resources.resx从project1 \ Properties拖到project2(不在Properties文件夹中)
3 - 将project2中的引用添加到project1
因此,现在project1中的所有图像都可以在project2中使用。到现在为止还挺好。我可以在设计时使用它们就好了。
但是,当我想在运行时访问它们时,我会尝试这个(在project2中)......
Image img = project1.Properties.Resources.image14;
与MissingManifestResourceException崩溃。
我在这里做错了什么?有没有更好的方法来解决这个问题?我试图做的就是将我的所有图形保存在一个地方,所以如果我添加一个资源,它就可用于解决方案中的所有项目。
答案 0 :(得分:3)
按照以下步骤构建示例:
GlobalResources.resx
)并添加资源项Information
GlobalResources.Information
应该很简单。
修改强>
您担心在设计时属性编辑器中使用外部资源文件。很抱歉,没有标准支持:(
但是,如果你认为好处大于努力:
Issue with shared WinForms resources across projects in Visual Studio
How do I get the Windows Forms Designer to use resources from external assembly?
希望它有所帮助。
答案 1 :(得分:0)
在解决方案资源管理器中选择引用的文件,然后选择属性,然后查看"复制到输出的内容"财产看起来像。我怀疑它不设置为" Copy Always"或者"复制如果更新"哪一个都应该没问题。
复制后,我们也会检查它的复制位置。该特定项目的输出路径是否与程序最终期望的相同?它被复制到正确项目的bin \ Debug吗?
确保将其复制到MissingManifestResourceException
无法找到资源的路径。
最后,在我们的评论中提供了其他信息,我还建议您验证以下内容: