我创建了一个Windows应用程序项目,它工作正常。在加载表单时,它会读取一个文本文件并将数据打印到表单中的表。当我发布并执行它时,它会抛出文件丢失错误。当我将项目转换为可执行文件时,文本文件丢失。该文本文件存在于应用程序的启动路径文件夹中。发布时我错过了什么吗?
错误:
System.IO.FileNotFoundException: Could not find file 'C:\Users\\AppData\Local\Apps\2.0\4V17NKV8.EJ8\H5VC3CZ8.AM3\atum..tion_5f39d67ebcfcae03_0001.0000_14487f1ba676fa3d\Data'.
我正在使用visual studio 2012和c#项目。
答案 0 :(得分:0)
我找到了这个错误的答案。实际上我在分配文件路径时犯了错误。以前我已经分配了文件路径如下:
private void Form1_Load(object sender, EventArgs e)
{
StreamReader sr = new StreamReader"E:/123.txt");
richTextBox1.Text = sr.ReadToEnd();
}
所以在创建可执行文件之后,当我们在其他系统中运行可执行文件时,我们应该将这个txt文件复制到同一个文件夹中(E:/123.txt)。但这不公平。但是使用安装程序方法,我们可以嵌入文件,如果你不想创建安装程序文件,直接exe文件意味着执行以下操作。
2
private void Form1_Load(object sender, EventArgs e)
{
string path;
path = System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
path = path.Replace("file:\\", "");
StreamReader sr = new StreamReader(path +"/123.txt");
richTextBox1.Text = sr.ReadToEnd();
}
您应该添加System.Reflection
的命名空间。
3.然后发布您的项目,它将使用您发布的数据部署该文件。