我创建了一个使用accdb文件的程序。我还创建了一个用于部署所述程序的安装项目。但是,我在accdb文件只在Microsoft Vista中准备就绪时遇到了困难。
首先我将accdb文件安装到DataDirectory中,但意识到如果您需要对文件进行更改,则Program Files位置不是安装文件的位置。
所以我试图安装到ProgramData目录,但accdb文件仍然是只读的
然后我尝试安装到users目录,但无法获取app.config文件中的连接字符串是否正确。
所以最终,我的问题是:
1.我在哪里需要安装accdb文件,以便它不是只读的?
2.如何在VS2010中的FileSystem中配置该目录?
3. app.config中的连接字符串应该是什么样的?
如果可能的话,我希望在XP,Vista和W7中工作。如果需要在多个操作系统上工作,可以创建多个安装项目。
答案 0 :(得分:0)
您应该将db文件安装到LocalAppDataFolder。
看来你已经尝试过了......
但无法获取app.config文件中的连接字符串是否正确。
不是在设计时设置连接字符串,而应在运行时设置字符串
从ErikEJ的answer到类似的问题
string fileName = System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"SqlCe35AddinStore.sdf");
string connString = string.Format("Data Source={0};", fileName);