Wpf &引用;无法将文件作为数据库附加";首次安装我的代码ClickOnce应用程序时出错
我正在构建一个WPF应用程序,首先使用EF代码 该应用程序在调试时似乎工作正常,但当我使用ClickOnce发布并安装它时,出现以下错误:Wpf &引用;无法将文件作为数据库附加";首次安装我的代码ClickOnce应用程序时出错,wpf,ef-code-first,clickonce,Wpf,Ef Code First,Clickonce,我正在构建一个WPF应用程序,首先使用EF代码 该应用程序在调试时似乎工作正常,但当我使用ClickOnce发布并安装它时,出现以下错误: Cannot attach the file [path & filename] as database 我试过: 使用VS服务器资源管理器检查我的连接字符串 () 更改连接字符串中数据库的名称 从连接字符串中删除标签,如AttachDbFilename 使用sqlcmd注销数据库 () 删除localdb实例 () 使用VS的SQL Serve
Cannot attach the file [path & filename] as database
我试过:
- 使用VS服务器资源管理器检查我的连接字符串 ()
- 更改连接字符串中数据库的名称
- 从连接字符串中删除标签,如
AttachDbFilename
- 使用sqlcmd注销数据库 ()
- 删除localdb实例 ()
- 使用VS的SQL Server对象资源管理器删除数据库
- 只需省略连接字符串,但我得到一个不同的错误:
(但是,除了注释掉的连接字符串外,我的代码中没有提到{"Expansion of |DataDirectory| failed while processing the connection string. Ensure that |DataDirectory| is set to a valid fully-qualified path."}
)| DataDirectory |
- 使用
,甚至DropCreateDatabaseIfModelChanges
,而不是DropCreateDatabaseAlways
CreateDatabaseIfNotExists
更新: 同时,我已经使用SQLServerManagementStudio删除了数据库,这似乎有一些帮助
- 如果不使用连接字符串,则会出现
错误: 处理连接字符串时,| DataDirectory |的|DataDirectory |
扩展失败。确保将| DataDirectory |设置为有效的完全限定路径。
- 如果我随后在调试模式下运行应用程序(使EF创建DB),然后运行(或重新安装)该应用程序,则会出现以下错误:
管道另一端无流程
- 如果随后使用SQL Server Management Studio删除数据库(在上述步骤中的调试运行期间创建),并再次运行已安装的应用程序,则会再次出现
错误| DataDirectory
- 即使使用连接字符串指定绝对路径,也会出现
错误| DataDirectory |
- 如果我随后在调试模式下运行应用程序(使EF创建DB),然后运行(或重新安装)应用程序,我将再次收到
无法将文件作为数据库附加的错误
- 如果随后使用SQL Server Management Studio删除数据库(在上述步骤中的调试运行期间创建),并再次运行已安装的应用程序,则会再次出现
错误| DataDirectory
更新2:
- 我让应用程序在我的家用电脑上运行。 所需要的只是。。。不要使用添加到“开始”菜单的快捷方式ClickOnce,而是运行.exe本身 ClickOnce在安装启动后仍不会显示任何通知,并且在安装完成后仍无法启动应用程序
- 我不知道这个“补丁”在工作中是否也会起作用,直到星期二才能在那里试用——但我会随时通知你。
我在那里做了短暂的尝试,但出现了以下错误:
... 但我很可能使用了一个过时的.exe副本,因为我当时很忙无法加载文件或程序集“EntityFramework,版本=6.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089”或其依赖项之一
更新此答案:我找到了一个修复程序: 我的问题似乎是由连接字符串故障引起的:
故障出现在名称
标记中。它应该简单地说,“DienstreisDBContext”(从而省略了存储DBContext类的文件夹的名称)
我找到了一份工作: 如果在安装过程中忽略错误,并使用.exe而不是“开始”菜单快捷方式ClickOnce生成,则我的应用程序似乎运行正常 可悲的是,这意味着更新我的应用程序不会像ClickOnce想象的那么容易