当前位置:  开发笔记 > 编程语言 > 正文

如何在.NET程序集中嵌入文本文件?

如何解决《如何在.NET程序集中嵌入文本文件?》经验,为你挑选了3个好方法。

我想在程序集中嵌入一个文本文件,这样我就可以加载文本而无需从磁盘中读取它,因此我需要的所有东西都包含在exe中.(这样它更便携)

有没有办法做到这一点?我假设资源文件的东西?

如果可以的话,你是如何做到的,以及如何将文本加载到字符串中?



1> angry person..:

右键单击项目文件,选择"属性".

在打开的窗口中,转到"资源"选项卡,如果它在选项卡页面中间只有一个蓝色链接,请单击它以创建新资源.

在此输入图像描述

然后从选项卡页面上方的工具栏中选择添加新文本文件,为其命名,将其添加到项目中并打开.

如果你做到这一点,那么在你的代码中你可以输入Resources.TheNameYouGaveTheTextFileHere并且你可以访问它的内容.请注意,第一次在类中使用Resources类时,需要添加using指令(在键入Resources之后按Ctrl +.获取菜单以让VS为您执行此操作).

如果对上述描述有些不清楚,请发表评论,我会对其进行编辑,直到完成或有意义:)


啊哈,我需要做的就是添加一个My.到前面(即My.Resources.solutions)简单!
文件在编译时打包到资源中,而不是在添加时打包.您可以在任何您喜欢的工具中自由更改文件并重建,更改将成为您的程序集的一部分.
添加资源会生成并包含`Properties\Resources.Designer.cs`和`namespace YourProjectRootNamespace.Properties`,因此您必须使用`YourProjectRootNamespace.Properties`.`ProjectRootNamespace`在VisualStudio中的项目属性中定义.

2> Drew Noakes..:

在Visual Studio 2003,Visual Studio 2005以及可能的早期版本(这也适用于2008)中,您可以在项目中包含文本文件,然后在"属性"面板中将操作设置为"嵌入式资源".然后,您可以使用以流的形式访问该文件Assembly.GetManifestResourceStream(string).

这里的其他答案更方便.我把它包括在内是为了完整性.

请注意,此方法适用于嵌入其他类型的文件,如图像,图标,声音等...


注意:使用namespace + filename作为GetManifestResourceStream()的参数,例如"MyNamespace.MyTextfile.txt".您还可以调用GetManifestResourceNames()来获取所有名称的列表.

3> Narottam Goy..:

嵌入文本文件后,在这样的代码中使用该文件...

global::packageName.Properties.Resources.ThatFileName


这是一种更好的方法,因为如果删除资源,它将抛出编译器错误.它还消除了拼写错误.谢谢你的帖子.
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有