2015-10-07 70 views
0

我创建了与Microsoft Access数据库运行后,我部署的项目,并把它安装C驱动数据库文件变成只读C#应用程序访问数据库,而且,如果我在D或安装另一个驱动器工作正常。如何发布C#应用程序与

如果有人能够帮助它被赞赏(SIS是访问数据库文件)的问题是我想使它在C驱动器也工作。

this is my setup SIS is the access file 这是我的设置SIS是访问文件

这是使用

String cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\SIS_DB.accdb;"; 
+0

您可以尝试将数据库放入应用程序数据文件夹中,将连接字符串更改为指向并发布。 – Code4U

回答

0

你的问题是你的数据库文件中的%ProgramFiles%。它应该是%APPDATA%

有解决

1.modify安装项目两种方式。 当您进行设置时,您应该指定f.mdf的路径,确保该文件将安装到AppData文件夹中。

2.复印f.mdf到应用程序数据文件夹中的应用程序。 每次运行你的应用程序时,第一件事就是将文件复制到应用程序数据文件夹, 你可以在你的主要添加如下代码(或init)方法,然后再试一次:

string [email protected]"C:\PROGRAM FILES\DEFAULT COMPANY NAME\SETUPER2"; 
string appDataPath= Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 
string fileName="F.MDF"; 
System.IO.File.Copy(sourcePath+"\\"+fileName, appDataPath+"\\"+fileName ,false); 

* 1是更好。

+0

谢谢sooooooooo muchhhhh第一种方法修复问题赞赏 – user3856440

0

连接字符串IM您是老同学...... C盘这些天是禁区。

使用无论是程序数据文件夹应用程序特定数据 - 或者,用户数据,您为应用程序创建一个文件夹,并使用此文件夹为用户的数据%APPDATA%文件夹。

+0

即时通讯混淆有点你的意思是改变连接字符串到程序数据文件夹感谢回答 – user3856440