Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c应用程序更新后文件和数据库丢失_C#_Sql Server_Database_Clickonce_Updates - Fatal编程技术网

C# c应用程序更新后文件和数据库丢失

C# c应用程序更新后文件和数据库丢失,c#,sql-server,database,clickonce,updates,C#,Sql Server,Database,Clickonce,Updates,我在使用SQL数据库的c开发的pc上安装了一个桌面应用程序。几个月后,我使用clickonce发布了该应用程序的新版本,并将其放在FTP服务器上 当我进行更新时,数据库.mdf和.ldf文件被删除,并被一个新的文件替换,我认为是一个发布的文件,所以几个月的工作都没有了 我想知道是否有可能恢复或检索旧数据库 在pc上进行更新之前,我在笔记本电脑上做了一些测试,本地数据库从未被替换或删除 非常感谢,如果SQL文件设置为“复制本地”或“复制到输出目录”,则可以签入解决方案的属性 通常,必须设置数据库文

我在使用SQL数据库的c开发的pc上安装了一个桌面应用程序。几个月后,我使用clickonce发布了该应用程序的新版本,并将其放在FTP服务器上

当我进行更新时,数据库.mdf和.ldf文件被删除,并被一个新的文件替换,我认为是一个发布的文件,所以几个月的工作都没有了

我想知道是否有可能恢复或检索旧数据库

在pc上进行更新之前,我在笔记本电脑上做了一些测试,本地数据库从未被替换或删除


非常感谢,

如果SQL文件设置为“复制本地”或“复制到输出目录”,则可以签入解决方案的属性

通常,必须设置数据库文件:

  Build Action: NONE
  Copy to Output Directory:  Do NOT COPY
并在安装应用程序期间手动复制它们


很可能,它们被设置为复制,您的ClickOnce可能会提供此功能。

严格来说,这不是编程问题。如果你保持定期备份,顺便说一句,你可以从那里恢复它。或者你也可以尝试一下Windows还原。假设您使用SQL Server CE作为解决方案的一部分,您也不应该发布sdf文件。您是否使用代码优先方法的实体框架建模?不,我们不是。但真正的问题是,如果有办法,我们如何备份已擦除的数据库?但有办法备份已擦除的数据库吗?问题与备份没有直接关系。是的,您可以允许用户使用Filecopy功能将MDF备份到.BAK文件。但请记住:问题在于从安装/更新中删除MDF文件,否则,所有更新都将重写数据库文件。