【发布时间】:2015-06-22 13:18:38
【问题描述】:
我开发了一个使用 SQL Server LocalDB 的应用程序(使用 VS2012 构建的 WinForm 应用程序)。
我为应用程序和数据库创建 .exe 文件,以便使用 Visual Studio 2012 工具(InstallShield Limited Edition 或 ClickOnce)将其安装在另一台机器上。该应用程序安装在另一台机器上,但当我启动它时收到以下错误消息:
尝试为文件附加自动命名的数据库 C:\Users\%nom_utilisateur%\AppData\Local\Apps\2.0\Data\blabla\blabla\Data\Devessai.mdf 失败的。存在同名数据库,或指定文件不能 被打开,或者它位于 UNC 共享上。
现在,当我将数据库复制到错误消息中指定的路径时,应用程序可以完美运行。
如何通过应用程序安装程序将数据库直接放入 AppData 文件夹?
这是 app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="mdf_projet.Properties.Settings.DevEssaiConnectionString"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\DevEssai.mdf;Integrated Security=True;Connect Timeout=30"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
【问题讨论】:
-
此问题与您的应用程序配置无关,而与您的 ClickOnce 部署有关。
-
我该如何解决这个问题?
-
您提到了 ClickOnce 和 InstallShield Limited Edition,您使用的是哪一个?这是非常不同的安装程序构建工具。
-
另外,这个数据库是如何创建的?它是预先生成和部署的,还是由您的代码提供的?
-
当我使用 clickonce 时,错误消息是:尝试为文件 C:\Users\%nom_utilisateur%\AppData\Local\Apps\2.0\Data\blabla 附加自动命名数据库\blabla\Data\Devessai.mdf 失败。存在同名数据库,或无法打开指定文件,或位于 UNC 共享上。当我使用 installshield 相同的消息 d'error 但路径是 .exe 文件 C:\prgramme_file\application\ 。 @JNYRanger
标签: c# visual-studio-2012 localdb sql-server-2012-express