如何在 Rider IntelliJ 中将文件设置为嵌入式资源?

问题描述 投票:0回答:2

我想将我的一些文件设置为嵌入式资源s。

有关于类似简单任务的教程,仅适用于 Visual Studio,但不适用于 Rider。

这里有一个关于 Rider 的问题,没有答案: https://www.reddit.com/r/Jetbrains/comments/dw93rf/rider_add_file_a_embedded_resource/

.net intellij-idea embedded-resource rider
2个回答
11
投票

您必须 右键单击文件(或选定的文件 - 使用 Ctrl+A 或 Ctrl + 左键单击)

enter image description here

然后按 Properties(或快捷键:Alt+Enter)并将 Editable/Build action 设置为 EmbeddedResourceenter image description here


0
投票

今天早上我因为这个问题而感到很困难。我正在使用 RIDER

2024.3
,这是我遇到的解决方案。

要将图像嵌入到您的应用程序中,请按照以下步骤操作。我们假设:

  • ${ROOT}
    代表您的项目的根目录。
  • project_namespace
    是您项目的根命名空间。
  • 要嵌入的图像名为
    click-and-crypt-square.jpg

步骤:

  1. 创建资源目录
    在项目的根目录下,创建一个专门的子目录来存储图像资源。
    例如,创建目录

    ${ROOT}/resources
    .

  2. 将您的图像添加到目录
    将您想要嵌入的图像移动到您刚刚创建的目录中。
    因此,您的项目中应该将该文件定位为

    ${ROOT}/resources/click-and-crypt-square.jpg

  3. 将文件添加到您的项目中
    解决方案资源管理器中,右键单击

    ${ROOT}/resources/click-and-crypt-square.jpg

  4. 访问文件属性
    从上下文菜单中,选择属性Solution explorer contextual menu

  5. 设置文件属性
    属性窗口中:

    • Build Action
      设置为 EmbeddedResource
    • 为资源指定一个名称,例如
      click-and-crypt-square.jpg
      Resource properties
  6. 添加资源助手类
    将以下类添加到您的项目中,以通过编程方式访问嵌入图像:

    namespace project_namespace;
    using System;
    using System.Drawing;
    using System.IO;
    using System.Reflection;
    
    public class ResourceLoader
    {
        public static Image LoadEmbeddedImage(string resourceName)
        {
            Assembly assembly = Assembly.GetExecutingAssembly();
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                if (stream == null) throw new Exception($"Resource not found: {resourceName}");
                return Image.FromStream(stream);
            }
        }
    }
    
  7. 要从代码访问嵌入资源:

    // <project root namespace>.<directory name>.<resource name>
    ResourceLoader.LoadEmbeddedImage("project_namespace.resources.click-and-crypt-square.jpg")
    
© www.soinside.com 2019 - 2024. All rights reserved.