我们正在开发一个(WPF)软件,该软件在每个客户端上作为独立应用程序运行,并且正在连接到数据库服务器。你可以这样看:1数据库服务器= 1个客户= dosens /数百个连接到这个数据库的客户端PC。目前我们使用WIX制作了一个安装程序。
让我们考虑这种潜在的情况:我们发布了我们软件的新版本,其中包含一些数据库架构更改。这意味着如果一个客户端安装新版本并更新数据库架构,则所有其他客户端的软件将无法正常运行。
那么,此场景中有哪些可用的更新选项?是否有类似于从单个位置发布的强制更新到所有客户端?
答案 0 :(得分:0)
我们有类似的更新要求。当对应用程序的更新与数据库或存储过程的更改保持一致时,对数据库或存储过程的更改与更新的客户端应用程序之间的任何差异都可能导致错误。
如果不是对数据库架构进行大修,如果只是对SP进行更改,则可以对SP进行版本控制,并且只从更新的软件中调用新的SP。
由于我们的产品都部署在网络上,因此我们使用ClickOnce进行部署。我们手动运行代码以检查更新。为此,我们实际上读取了清单文件。我们更喜欢这种方法,而不是跟踪数据库上的版本,因为它并不要求我们维护版本控制。 (这就是ClickOnce的用途)
我们在启动时运行版本检查。如果需要更新,我们会强制进行更新,并要求用户重新启动应用程序。