C# 如何在MonoDevelop中使用资源文件?

C# 如何在MonoDevelop中使用资源文件?,c#,mono,monodevelop,C#,Mono,Monodevelop,尝试使用MonoDevelop C#和嵌入资源文件(您知道扩展名为.resources的文件)。我希望res文件包含应用程序在运行时读取的字符串。我想将它们嵌入到EXE中。但是我不知道怎么做 格式化.resources文件(是否类似于string1=“Hello world”) 将文件嵌入到EXE中 读取嵌入的文件(ResourceReader.GetResourceData需要一个文件) 否则我想我会放弃这个想法,把文本放在我自己的文本文件中。 谢谢有两种方法: 简易方法: 转到解决方案侧栏,

尝试使用MonoDevelop C#和嵌入资源文件(您知道扩展名为.resources的文件)。我希望res文件包含应用程序在运行时读取的字符串。我想将它们嵌入到EXE中。但是我不知道怎么做

  • 格式化.resources文件(是否类似于string1=“Hello world”)
  • 将文件嵌入到EXE中
  • 读取嵌入的文件(ResourceReader.GetResourceData需要一个文件)
  • 否则我想我会放弃这个想法,把文本放在我自己的文本文件中。 谢谢

    有两种方法:

    简易方法:

    转到解决方案侧栏,右键单击要嵌入资源所在的项目名称,然后在上下文菜单中转到“添加->添加文件”,然后选择要添加的文件。如果不希望在根项目文件夹周围添加文件夹,并且过程相同,只需右键单击添加的文件夹而不是项目名称,即可添加文件夹

    完成后,选择文件,在properties侧栏中,您将看到几个选项,将“Build action”更改为“Embed as resource”,就完成了。实际上,你会在那里找到更多有用的选择

    不是那么简单的方法:

    编辑项目根文件夹中的.csproj文件,并添加如下文件:

      <ItemGroup>
        <EmbeddedResource Include="Resources\file1.txt" />
        <EmbeddedResource Include="Resources\file2.txt" />
      </ItemGroup>
    
    
    

    请注意,拆分文件夹名称和文件名时有一个反斜杠。ItemGroup元素及其子元素应该位于main
    标记下方的任何位置

    一个警告-我认为MD只支持foo.resx->foo.resources编译,而不支持foo.txt->foo.resources编译,因此示例中的文本文件将直接嵌入。那么,这些文件是否必须具有该扩展名?