访问已发布应用程序的资源

时间:2013-07-22 10:06:08

标签: c# resources embed

我在Resources文件夹中嵌入了一些.txt文件。当我运行项目时,根据选择,确定.txt文件名。

例如;

文件名是sample017.txt,我保留textName字符串变量。此文件的完整路径为:

  

" ../../资源\" + textName;

我将所有这些分配给fileName字符串变量:

fileName = "../../Resources\\" + textName;

因此,我将此字符串变量用于流文本文件:

using (Stream input = File.OpenRead(fileName))

在这种形式中,我可以访问sample017.txt文件,它在调试模式下工作正常。但是,当我构建一个安装项目并将其安装到任何PC时,它会崩溃成异常而且它无法正常运行找到"资源"夹。如何使用.exe文件夹中的资源管理相同的内容?

注意:我不想将文件复制到程序文件夹。我想嵌入这些来源。

1 个答案:

答案 0 :(得分:1)

尝试从路径中删除../ ..因为资源部署与本地调试时不一样。

同时检查这个帖子:

Deployed application can't find its resources c# Visual Studio 2010

您还可以将文件作为资源嵌入,并使用Assembly.GetExecutingAssembly加载它。使用GetManifestResourseStream获取内容。

有关访问您在此处找到的资源的更多详细信息:http://support.microsoft.com/kb/319292

这是一个剪辑..

var assembly = Assembly.GetExecutingAssembly();
var res = assembly.GetManifestResourceStream("MyNameSpace.TextFile.txt");
var textStreamReader = new StreamReader(res);

问候