Ada*_*ile 117 .net c# embedded-resource
我想在程序集中嵌入一个文本文件,这样我就可以加载文本而无需从磁盘中读取它,因此我需要的所有东西都包含在exe中.(这样它更便携)
有没有办法做到这一点?我假设资源文件的东西?
如果可以的话,你是如何做到的,以及如何将文本加载到字符串中?
ang*_*son 146
右键单击项目文件,选择"属性".
在打开的窗口中,转到"资源"选项卡,如果它在选项卡页面中间只有一个蓝色链接,请单击它以创建新资源.

然后从选项卡页面上方的工具栏中选择添加新文本文件,为其命名,将其添加到项目中并打开.
如果你做到这一点,那么在你的代码中你可以输入Resources.TheNameYouGaveTheTextFileHere并且你可以访问它的内容.请注意,第一次在类中使用Resources类时,需要添加using指令(在键入Resources之后按Ctrl +.获取菜单以让VS为您执行此操作).
如果对上述描述有些不清楚,请发表评论,我会对其进行编辑,直到完成或有意义:)
Dre*_*kes 38
在Visual Studio 2003,Visual Studio 2005以及可能的早期版本(这也适用于2008)中,您可以在项目中包含文本文件,然后在"属性"面板中将操作设置为"嵌入式资源".然后,您可以使用以流的形式访问该文件Assembly.GetManifestResourceStream(string).
这里的其他答案更方便.我把它包括在内是为了完整性.
请注意,此方法适用于嵌入其他类型的文件,如图像,图标,声音等...
Nar*_*yal 31
嵌入文本文件后,在这样的代码中使用该文件...
global::packageName.Properties.Resources.ThatFileName
Run Code Online (Sandbox Code Playgroud)
这对我有用。(我需要读取嵌入到可执行 .NET 图像文件中的文件的内容。)
在执行任何操作之前,请将您的文件包含到 Visual Studio 中的解决方案中。(在我的情况下是 VS 2017 社区。)我切换到Solution Explorer,然后右键单击Properties文件夹,选择Add Existing Item并选择文件。(比如说,FileName.txt。)然后在 中的同时Solution Explorer,右键单击包含的文件,选择Properties,然后选择Build Action为Embedded Resource。
然后使用此代码读取其字节:
string strResourceName = "FileName.txt";
Assembly asm = Assembly.GetExecutingAssembly();
using( Stream rsrcStream = asm.GetManifestResourceStream(asm.GetName().Name + ".Properties." + strResourceName))
{
using (StreamReader sRdr = new StreamReader(rsrcStream))
{
//For instance, gets it as text
string strTxt = sRdr.ReadToEnd();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下,您不需要将该文件添加为已接受答案中建议的资源。
| 归档时间: |
|
| 查看次数: |
81909 次 |
| 最近记录: |