【问题标题】:resources at class library project类库项目中的资源
【发布时间】:2018-01-22 15:32:51
【问题描述】:

我想将一些 xml 文件作为资源添加到我的类库项目中。 知道该怎么做,然后再打电话吗? 在 Windows 应用程序中,我会像 ClassLibrary1.Properties.Resources.file.xml

但是在这里它不知道我是怎么做的?

【问题讨论】:

  • 你做了什么没用?你试过什么?

标签: c# .net visual-studio


【解决方案1】:

This article 解释如何在 C# 中使用嵌入式资源。

归结为

  1. 在“设计时”:将文件添加到项目并将其标记为嵌入式资源(属性)
  2. 在“运行时”:获取包含所需资源的 Assembly 实例,然后将该资源作为流导出。

var 程序集 = Assembly.GetExecutingAssembly();

var stream = assembly.GetManifestResourceStream("fully.qualified.name.of.the.resource");

如果您正在努力计算资源的 fq 名称,一种懒惰的方法是使用 reflector 打开包含它的程序集。转到资源文件夹,右键单击特定资源并选择“复制”。

【讨论】:

  • 谢谢。这对我有帮助。另一种无需下载工具即可获取名称的方法是访问 _assembly.GetMainfestResourceNames() 并在此处设置断点。你会得到所有的名字,然后你可以复制/粘贴它,摆脱你获取名字的电话。 :)
【解决方案2】:

在 Windows 应用程序中,我会像 ClassLibrary1.Properties.Resources.file.xml 那样做

默认情况下,为访问资源而生成的类是内部的,因此您无法从另一个程序集访问它。如果需要将其公开,请选择 .resx 文件,转到其属性,然后将自定义工具属性从“ResXFileCodeGenerator”更改为“PublicResXFileCodeGenerator”。这个自定义工具生成公共类,应该可以解决您的问题。

【讨论】:

    【解决方案3】:

    右键单击类库项目,选择属性,在左侧的选项卡上选择资源部分。

    由于 Visual Studio 无法识别您的 .resx 文件,请添加一个新文件。 它将创建一个新的 .resx 文件。

    复制所有原始内容并粘贴到新内容中。然后你可以删除旧的。 就是这样!

    您需要为所有支持的语言重复相同的过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      相关资源
      最近更新 更多