c# 发布带有文件夹数据的 windows 表单应用程序的 exe
c# publish exe of windows form application with folder data
我已经用 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 文件夹。
我必须做什么?
谢谢
使用数据文件的最简单方法是将它们作为内容项包含在项目中。在解决方案资源管理器中右键单击您的 *.xlsx 文件并将 Build Action 设置为 Content 并将 Copy 到输出目录 到 始终。
它将使构建引擎将数据文件包含到 /bin 目录中。
然后您可能需要设置部署引擎以将此文件包含在可部署包中。例如,如果您使用的是 ClickOnce,则可能需要将此文件包含在项目的“发布”选项卡中
使用这个:
string projectDirectory = AppDomain.CurrentDomain.BaseDirectory ;
这将为您提供可执行文件所在的目录。
我已经用 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 文件夹。
我必须做什么? 谢谢
使用数据文件的最简单方法是将它们作为内容项包含在项目中。在解决方案资源管理器中右键单击您的 *.xlsx 文件并将 Build Action 设置为 Content 并将 Copy 到输出目录 到 始终。 它将使构建引擎将数据文件包含到 /bin 目录中。 然后您可能需要设置部署引擎以将此文件包含在可部署包中。例如,如果您使用的是 ClickOnce,则可能需要将此文件包含在项目的“发布”选项卡中
使用这个:
string projectDirectory = AppDomain.CurrentDomain.BaseDirectory ;
这将为您提供可执行文件所在的目录。