我在Resources文件夹中嵌入了一些.txt文件。当我运行项目时,根据选择,确定.txt文件名。
例如;
文件名是sample017.txt,我保留textName字符串变量。此文件的完整路径为:
" ../../资源\" + textName;
我将所有这些分配给fileName字符串变量:
fileName = "../../Resources\\" + textName;
因此,我将此字符串变量用于流文本文件:
using (Stream input = File.OpenRead(fileName))
在这种形式中,我可以访问sample017.txt文件,它在调试模式下工作正常。但是,当我构建一个安装项目并将其安装到任何PC时,它会崩溃成异常而且它无法正常运行找到"资源"夹。如何使用.exe文件夹中的资源管理相同的内容?
注意:我不想将文件复制到程序文件夹。我想嵌入这些来源。
答案 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);
问候