如何在一个解决方案中的项目之间使用共享资源文件?

Yur*_*riy 18 .net c# embedded-resource visual-studio solution-explorer

我的资源文件有问题.

我有两个项目的解决方案.第一个项目包含ImageResource.resx带有我使用的图像的文件.Form此项目中的每个人都可以从设计器访问此文件.但我可以在设计器ImageResource.resx文件中看到从第二个项目中使用它(参考第二个项目存在).

我已将该ImageResource.resx文件添加为第二个项目的链接.我在设计师看到了它!但是当我在第二个项目中使用来自此资源的图像时,Visual Studio修改了我的原始文件(它设置名称空间,以及其他...),我的解决方案中断了.Visual Studio也告诉我,ImageResource.resx它存在于两个dll first_project.dllsecond_project.dll

任何人都可以帮助我如何在项目之间正确使用共享资源?

Yur*_*riy 33

  1. 共享资源的正确方法是创建全局共享项目.创建一个名为Resources的新项目:

解决方案资源管理器,显示示例解决方案,其中包含名为*Resources*的项目

  1. 接下来,我们必须向项目添加一些资源(例如图标).像往常一样这样做.转到项目设置,选择选项卡资源添加现有文件...到项目.我们可以看到该图标已添加到项目中并被复制到本地文件夹:

例如,Resources项目的Resources选项卡显示了一只小狗的图片,Solution Explorer显示Resources项目的Resources文件夹包含了小狗的图片

  1. 下一步包括将此图标添加到其他项目.注意重要的区别,你需要添加这个图标作为链接!

    添加为链接可避免资源重复.在同一解决方案中创建一个新项目,并将其命名为Main.在这个新项目中创建一个文件夹,命名为Resources(我们的逻辑名称).然后右键单击此文件夹,选择Add Existing Item ...并从共享项目文件夹中选择图像文件.请务必在此处使用添加链接!如果正确完成,新添加文件的图标将略有不同(见下文):

在*Add Existing Item*对话框中,从*Add*按钮的下拉列表中选择*Add As Link*选项

添加的资源图标必须如下所示

在解决方案资源管理器中,小狗资源的主项目图标在图标上有一个箭头,而资源项目的小狗资源图标在图标上没有箭头

  1. 现在我们必须将此文件的Build Action设置为None.为此,请选择文件并转到" 属性"窗口.对于Build Action,选择None.我们需要这样做以避免将此图标嵌入到程序集中:

在解决方案资源管理器中,更改*Main*项目的puppy资源的属性. 选择*无*的构建操作

  1. 最后,我们需要将链接文件添加到相应项目的Resources中.打开我们刚刚添加文件的项目的项目属性.选择Resource选项卡并将链接文件拖到那里:

将链接图像从解决方案资源管理器的*Main*项目资源拖动到*Main*项目的资源选项卡的查看窗格

这些是在项目之间共享图标必须执行的五个简单步骤.你可能会问"这有什么好处?" 好处是:

  • 我们将资源存储在一个地方,并且
  • 用新图标替换图标很容易.

  • 我们将资源存储在一个地方,并且很容易用新的图标替换一些图标. (4认同)