我想将我的一些文件设置为嵌入式资源s。
有关于类似简单任务的教程,仅适用于 Visual Studio,但不适用于 Rider。
这里有一个关于 Rider 的问题,没有答案: https://www.reddit.com/r/Jetbrains/comments/dw93rf/rider_add_file_a_embedded_resource/
今天早上我因为这个问题而感到很困难。我正在使用 RIDER
2024.3
,这是我遇到的解决方案。
要将图像嵌入到您的应用程序中,请按照以下步骤操作。我们假设:
${ROOT}
代表您的项目的根目录。project_namespace
是您项目的根命名空间。click-and-crypt-square.jpg
。创建资源目录
在项目的根目录下,创建一个专门的子目录来存储图像资源。
例如,创建目录
${ROOT}/resources
.
将您的图像添加到目录
将您想要嵌入的图像移动到您刚刚创建的目录中。
因此,您的项目中应该将该文件定位为
${ROOT}/resources/click-and-crypt-square.jpg
。
将文件添加到您的项目中
在 解决方案资源管理器中,右键单击
${ROOT}/resources/click-and-crypt-square.jpg
。
设置文件属性
在属性窗口中:
添加资源助手类
将以下类添加到您的项目中,以通过编程方式访问嵌入图像:
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);
}
}
}
要从代码访问嵌入资源:
// <project root namespace>.<directory name>.<resource name>
ResourceLoader.LoadEmbeddedImage("project_namespace.resources.click-and-crypt-square.jpg")