我在C#项目中包含了一个embebbed资源;我知道它的名字以及如何引用它,所以我想知道是否有任何方法可以获得它的绝对路径......是吗?
答案 0 :(得分:5)
嵌入式资源就是:嵌入式资源。这意味着,它包含在程序集中,并且在编译后不作为物理文件存在(如果这就是您要查找的内容)。
答案 1 :(得分:2)
正如其他人所说,嵌入式资源嵌入在已编译的程序集中,并且不存在于文件系统中;如果您希望将文件放在文件系统上,则应将构建操作更改为“无”,将“复制到输出目录”更改为其中一个复制值。
但是,如果你的意思是嵌入资源,那么可以使用Assembly类的GetManifestResourceStream方法访问它,如下所示:
GetType().Assembly.GetManifestResourceStream("someresourcestringhere")
(上面的代码假设您正在从同一程序集中的类访问资源)。
嵌入式资源通常遵循以下格式(保留任何空格),这是您将传递给GetManifestResourceStream方法的字符串:
默认项目namespace.folder名称(如果有).file name
就我个人而言,我发现获取此字符串的最简单方法是使用反编译工具(例如Telerik的Just Decompile)来查看程序集内部并获取您正在查找的文件的完整资源名称。 / p>
答案 2 :(得分:1)
System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
答案 3 :(得分:-1)
怎么样
Console.WriteLine(WindowsFormsApplication1.Properties.Resources.myfile);
其中myfile是嵌入式ini文件