更新安装

时间:2010-11-11 09:59:27

标签: c# dll installation

如果我们给用户设置,那么我们给用户设置的代码有可能会发生变化,然后我们必须重新设置,然后我们必须进行设置对用户来说,那不是问题,但是用户必须卸载该设置并且必须再次安装新的设置,那就是问题那么还有其他选择吗?

我问这个问题是因为在一个应用程序中有机会仅在应用程序的一个dll中进行更改然后是否有任何其他选项我们在该dll中进行更改并提供给用户和用户必须只更新那个DLL而不必卸载整个设置并重新安装整个设置?

3 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,那么您需要一个更好的部署解决方案 用于基于.NET的应用程序?

在这种情况下,我建议你看一下ClickOnce。 Visual Studio具有开箱即用的ClickOnce支持。

基本上你通过某种媒介部署应用程序,例如通过互联网, 每当您推送新的更新时,客户都可以选择自动升级,您甚至可以在后台更新软件。

如果您不想使用ClickOnce,则另一个选项是使用MEF。 这将允许您使用所谓的附加组件扩展您的应用程序。 这些附加组件基本上是在运行时从程序集加载的类。这意味着您可以使用某个程序集的1.0版运行应用程序,即使在应用程序运行时,用户也可以替换程序集,软件将由日期。

因此,您可以使用clickonce自动更新整个应用, 或者你将你的应用程序分解成更小的部分,使用MEF加载这些部分,并使用一个安装程序来简单地替换目标系统上的部件。

答案 1 :(得分:2)

.net dll不需要注册,所以为什么不制作一个简单的替换更新的dll的小型更新程序。无需卸载并重新安装。

答案 2 :(得分:0)

当我们运行我们的应用程序时,会出现一个登录窗口,其中有效用户必须提供他的凭据才能进入(旧东西!)。当他们将它们放入并成功注册后,我们会发出一个web service请求,发送客户端应用程序元(版本,操作系统等)。该Web服务托管在我们的域中。该Web服务攻击默认函数,在该函数中查询数据库以获取系统的最新(或稳定)版本的信息,然后将其与从客户端应用程序获得的信息进行比较并发回比较。接收数据是一个比特值,属于消息窗口的情况,如果这是一个旧版本的客户端应用程序弹出一个窗口允许下载更新版本的应用程序(或更新版本可用但与您的操作不兼容)系统等)

我们在成功注册时会做更多的事情(比如许可证密钥验证)。成功注册后的原因,因为只有有效用户才有权阻止我们的web service