最佳WinForms分发计划

时间:2012-07-04 15:09:57

标签: c# winforms clickonce distribution

我在冶金企业工作,在那里我们制作自己的生产软件。我们正在考虑改变我们的分销计划以满足我们当前的需求。我希望你能提出一些想法。

我们的应用程序是WinForms,C#Framework 4.0。它位于内联网中。它分为三个项目(UX,业务层和模型层)。应用程序在模块中“逻辑”划分,每个模块执行不同的任务,但它们共享一些功能(即商业模块,财务模块,报价模块)。

如果需要,还需要注销所有用户,以便他们可以更新他们的应用程序(如果发生严重更新)。

我们有两种情况(也许您可以添加其他情景):

情景1。

整个应用程序只有一个与ClicOnce一起分发的EXE。

优点:

  • 易于发现任何变化及其影响。
  • 只是一个发行版

缺点:

  • 小的变化会影响整个公司(如果更改的话,为什么要更新 不影响我的“模块”?)
  • 分布较重
  • 必须改进您的测试,以便减少分发中的错误。

情景2。

一个小型应用程序(EXE)“触发”不同的EXE(每个模块一个)。

优点:

  • 更新打火机。
  • 隔离错误。
  • 孤立发展。

缺点:

  • 必须检测每个更改才能重新编译/分发每个模块 (EXE)受影响。
  • 创建一个新项目以存储共享内容(表单, 课程等)。
你怎么看?你知道其他分销计划吗?

谢谢!

哈维尔

2 个答案:

答案 0 :(得分:3)

我将采用您的两种方案的混合,并为每个模块进行ClickOnce部署。共享代码中的更改将“触发”每个依赖模块的新部署。

您可以浏览System.Deployment namespace,尤其是ApplicationDeployment.CheckForUpdate method,以便整合“严重更新”要求,以便应用程序自行更新。

答案 1 :(得分:0)

嗯......我觉得有人已经遇到过这个问题。 他决定创建动态链接库。

你应该

  • 1 exe:具有非常简单代码的GUI:仅调用模块

  • n dll:具有明确API的模块可以通过GUI或其他模块调用。

然后您可以使用自动更新轻松替换一个模块。 这就是IE的工作原理。