[英]How to reference/use Resource Dictionary between multiple projects inside solution
[英]How to use shared resource file between projects in one solution?
我的资源文件有问题。
我有两个项目的解决方案。 第一个项目包含ImageResource.resx
文件,其中包含我使用的图像。 此项目中的每个Form
都可以从设计器访问此文件。 但我可以在设计器ImageResource.resx
文件中看到从第二个项目中使用它( 引用第二个项目 )。
我已将ImageResource.resx
文件添加为第二个项目的链接。 我在设计师看到了它! 但是当我在第二个项目中使用来自此资源的图像时,Visual Studio修改了我的原始文件(它设置名称空间,以及其他...) ,我的解决方案中断了。 Visual Studio还告诉我, ImageResource.resx
存在于两个dll的first_project.dll
和second_project.dll
任何人都可以帮助我如何在项目之间正确使用共享资源?
下一步包括将此图标添加到其他项目。 注意重要的区别,你需要添加这个图标作为链接 !
添加为链接可避免资源重复。 在同一解决方案中创建一个新项目,并将其命名为Main 。 在这个新项目中创建一个文件夹,命名为Resources (我们的逻辑名称)。 然后右键单击此文件夹,选择Add Existing Item ...并从共享项目文件夹中选择图像文件。 请务必在此处使用添加链接 ! 如果正确完成,新添加文件的图标将略有不同(见下文):
添加的资源图标必须如下所示
这些是在项目之间共享图标必须执行的五个简单步骤。 你可能会问“这有什么好处?” 好处是:
这对我不起作用,我找到了另一种(VS2015 +)方法。 请参阅https://stackoverflow.com/a/45471284/4151626
简而言之,共享项目直接包含在外围项目中。 因此,即使IDE不支持共享项目中的<Resource>
元素。 可以通过文本编辑器将<Resource>
元素添加到共享项目中。 然后在构建期间将它们合并到外围项目中。
您可以使用符号链接将文件共享到多个文件夹中吗?
视窗:
mklink linked_location\ImageResource.resx original_location\ImageResource.resx
C:\Users\preet>mklink
Creates a symbolic link.
MKLINK [[/D] | [/H] | [/J]] Link Target
/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link
refers to.
如果资源文件确实在项目之间共享,则应将其放在共享项目中。
Solution 'Sample'
Project Sample.Data
Project Sample.Business
Project Sample.UI
Project Sample.Resource //shared resources are put in a shared project
如果资源不公开 ,则无法查看该资源,并且默认设置为“朋友”。 您可以在可视设计器(右上角)中设置“访问修改器”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.