当涉及压缩数据库时,ClickOnce安装程序如何处理更新?

Ser*_*gio 5 wpf clickonce

我有一个简单的WPF应用程序,它使用ClickOnce来处理安装.在此应用程序中是一个紧凑的数据库 通过测试,我发现当我发布一个新版本时,这个数据库将被覆盖,这不是我想要的.无论如何,我可以对更新的文件进行细粒度控制吗?我假设ClickOnce只是检查数据库文件的哈希值,确定它已经更改并提取更新.

作为一种解决方法,我已经从已发布的应用程序中包含的文件中删除了数据库,因此原始文件在更新后保留在客户端计算机上,不受影响.

我知道这不是一个好的解决方案

谢谢,

Mik*_*enk 5

ClickOnce部署将应用程序文件分隔为"包含"或"数据文件".您可以通过转到项目"属性"页面,"发布"选项卡,然后单击"应用程序文件..."按钮来指定Visual Studio中每个文件的内容.然后,您可以将".sdf"文件设置为"发布状态"列下的"数据文件".

然后,使用ClickOnce应用程序下载的数据文件将放置在每个新版本的单独目录中.

我们的想法是,在新应用程序版本的第一次运行中,您将从旧版本的数据文件中检索所有用户的私有数据,并将这些数据合并到刚刚使用新版本下载的新数据文件中.

我想您可以在ClickOnce应用程序中找到访问本地和远程数据所需的信息.具体来说,请查看"ClickOnce数据目录"和"数据目录和应用程序版本"部分.

要访问位于Data目录中的SQL Server CE数据库,请使用类似于以下内容的连接字符串:

<add
  name="MyApplication.Properties.Settings.LocalCacheConnectionString"
  connectionString="Data Source=|DataDirectory|\LocalCache.sdf"
  providerName="Microsoft.SqlServerCe.Client.3.5" />
Run Code Online (Sandbox Code Playgroud)

"| DataDirectory |" 是SQL CE和SQL Express支持的特殊语法,并在运行时解析到正确的目录.