|
|
1
3
坦率地说,我一直认为ClickOnce处理数据的方式是危险的。如果使用clickOnce部署数据库,它会将其放在datadirectory中。然后,当您将更新部署到应用程序时,它会将数据库转发到安装下一版本应用程序的文件夹。但是,如果数据库发生更改,它会将其复制到文件夹+\pre,并在datadirectory中放置一个新的文件夹。如果你没有意识到你改变了它,它无论如何都会取代它。如果您打开一个sqlce数据库并检查数据结构, WHAM 它被部署。惊喜! 我认为将数据存储在用户配置文件下的另一个文件夹中更有意义,而且更安全。然后您可以选择何时更新数据库。 This article 将显示如何移动您的数据,使其不受ClickOnce更新的影响。 此外,当您确实想对数据库进行更改时,可以使用SQL语句进行更改,例如“alter table”等。我创建了一个脚本,并将其作为一个长字符串(其中包含回车)部署,让应用程序通过回车将资源拆分,并逐个执行语句。你知道一般的想法。 关于用户设置的一个注释——您可以通过UI以编程方式更改这些设置(即,为用户提供功能)。但是请注意,如果您更改了应用程序的证书并运行足够高的.NET版本(3.5,4),这本身不会导致问题,但它与ClickOnce应用程序具有不同的标识,并且在发布下一个更新时不会结转用户设置。因此,我还为配置数据滚动了自己的XML文件,并将其存储在localapplicationdata中。 |
|
|
2
0
在通过ClickOnce进行更新期间,不会覆盖用户级别设置,但您可以推送新的应用程序级别设置,因为
如果需要覆盖用户级设置,则必须通过编程方式进行。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |