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

本文关键字:应用程序 访问 资源 | 更新日期: 2023-09-27 18:24:27

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

例如

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

"../../Resources''"+textName;

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

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

因此,我使用这个字符串变量来流式传输文本文件:

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

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

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

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

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

也检查这个线程:

部署的应用程序可以';找不到它的资源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);

关于