ClickOnce:如何使用localDB数据库部署WPF应用程序

时间:2015-04-22 20:09:30

标签: .net deployment visual-studio-2015 clickonce localdb

这与previous question非常相似,但我正在寻找能够为最新的localDB和Visual Studio 2013更新它的答案。 [ edit < / em> :这也适用于Visual Studio 2015 ]还有another question similar to this one但没有答案。

情况是我有一个使用LocalDB的WPF应用程序。我的app.config中有一个连接字符串,带有“Data Source =(localdb)\ mssqllocaldb”,正确的初始目录和其他一些东西。它没有指定mdf文件。如果我从release / bin或debug / bin构建和启动,一切都有效。

当我在我的开发机器上使用clickOnce发布时,应用程序已安装并显示在开始菜单中。问题在于,当我启动它时,会抛出异常,深入了解内部异常,投诉似乎是......

  

底层提供程序在Open上失败。

     

无法附加文件'C:\ Users \ myName \ AppData ... \ myContext.mdf'作为数据库myContext

我不明白这里发生了什么。我曾预计安装的ClickOnce应用程序将只使用app.config中的连接字符串,然后使用(localDB)/ mysqllocaldb中的已存在的数据库。相反,它试图将mdf文件(顺便说一下,不存在)附加到我已经拥有应用程序使用的数据库的localDB中。

在涉及localdb的情况下,如何让clickonce正常工作似乎没有任何资源。我也无法根据MSDN docs推断出正确的行为。它肯定不像人们合理期望的那样表现。

如何在以下方案中使ClickOnce部署使用LocalDB的应用程序

  • 使用特定的 localDB mdf文件部署应用程序,覆盖任何具有相同名称的现有文件。

  • 部署使用已存在的 localDB mdf文件的应用程序 目标机器(我会构建应用程序以在运行时使用正确的connectionString或config)。

  • 这是一个很长的镜头...部署一个应用程序,它使用一些任意逻辑来确定是否覆盖任何现有的localDB mdf OR 继续使用现有的localDB mdf。

0 个答案:

没有答案