0

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

例如;

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

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

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

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

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

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

在这种形式下,我可以访问 sample017.txt 文件,它在调试模式下工作正常。但是,当我构建一个安装项目并将其安装在任何 PC 上时,它崩溃到一个异常并且找不到“资源”文件夹。如何使用 .exe 文件夹中的资源进行管理?

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

4

1 回答 1

1

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

还要检查这个线程:

已部署的应用程序找不到其资源 c# Visual Studio 2010

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

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

这里是截取的。。

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

问候

于 2013-07-22T10:16:41.153 回答