0

我已经在 c# 中发布了一个 Windows 窗体应用程序。问题是我在项目文件夹中有一个名为“dati”的文件夹 在此处输入图像描述

在代码中,当我尝试从文件夹中读取时,我使用此指令

string projectDirectory = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;

当我尝试读取此文件夹中的 xls 时,我有此说明

string path = projectDirectory + "\\dati\\dati.xlsx";
        string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0 Xml;HDR=NO;\"";

在调试中一切正常,如果我在 bin/Debug 或 bin/Release 文件夹中执行 .exe。当我发布应用程序并将其放在另一个文件夹(如 C:\ProjectPublished)中时,我收到此错误,因为它试图从另一个路径读取 dati 文件夹。

在此处输入图像描述

我必须做什么?谢谢

4

2 回答 2

1

使用数据文件的最简单方法是将它们作为内容项包含在项目中。在解决方案资源管理器中右键单击您的 *.xlsx 文件,然后将Build Action设置为Content并将Copy to output directory设置为Always。它将使构建引擎将数据文件包含到/bin目录中。然后您可能需要设置您的部署引擎以将此文件包含在可部署包中。例如,如果您使用 ClickOnce,您可能需要将此文件包含在项目的“发布”选项卡中

于 2020-11-24T10:16:37.973 回答
0

用这个:

string projectDirectory = AppDomain.CurrentDomain.BaseDirectory ;

这将为您提供可执行文件所在的目录。

于 2020-11-24T11:04:19.747 回答