【问题标题】:File Missing Error after creating exe file创建exe文件后文件丢失错误
【发布时间】:2023-03-19 00:35:01
【问题描述】:

我创建了一个 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# 项目。

【问题讨论】:

  • 您介意将代码发布到您尝试加载文本文件的位置吗?

标签: c# winforms visual-studio-2012 deployment exe


【解决方案1】:

我找到了这个错误的答案。实际上我在分配文件路径时犯了错误。以前我分配的文件路径如下:

private void Form1_Load(object sender, EventArgs e)
    {
        StreamReader sr = new StreamReader"E:/123.txt");
        richTextBox1.Text = sr.ReadToEnd();
    }

所以在创建可执行文件后,当我们在其他系统中运行可执行文件时,我们应该将此 txt 文件复制到同一文件夹(E:/123.txt)中。但这不公平。但是使用安装程序方法我们可以嵌入文件,如果您不想创建安装程序文件而直接创建exe文件,请执行以下操作。

  1. 通过右键单击项目名称并选择添加现有文件来添加文件。它会将文件添加到列表中。

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. 然后发布您的项目,它将使用您发布的数据部署文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2019-04-27
    • 2011-12-13
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多