DotNet中的补丁开发

时间:2011-01-22 09:12:12

标签: .net deployment patch

当我们在.NET中开发应用程序时,我们在开发结束时创建设置并将设置发送到客户端。客户端安装安装文件。

当我们更改我们的代码或在我们的应用程序中添加新功能时,我们再次创建安装程序并返回客户端再次安装。在这种情况下,如果设置文件大小变大,有没有像补丁一样的方法,当我们更改代码然后我们只是创建一个补丁并将该补丁提供给客户端?

客户端将安装该补丁将获得更改,并且之前的功能将在应用程序中保持不变。那么我怎么能在补丁的帮助下给出唯一新添加的功能或仅将应用程序中的一部分更改为客户端。

请详细说明实施此类设置开发的所有步骤,因为它的重量非常轻。

感谢

1 个答案:

答案 0 :(得分:4)

一种简单的方法(特别是如果您对代码进行代码签名或混淆)是将应用程序分解为多个单独的程序集(dll)。然后,如果更新代码,则只需部署实际已更改的程序集。

最重要的是控制依赖关系:在开始时很好地定义程序集之间的接口,并添加新接口以扩展现有功能(而不是对现有接口进行“重大更改”),以便您可以对应用程序的有用更改,而无需在补丁中部署大量程序集。 (如果存在许多依赖关系,您会发现在任何地方进行更改仍然需要您将几乎所有的程序集部署到客户,这在某种程度上违背了目的。)

这种方法无法提供最紧凑的补丁,但它非常简单且易于实现 - 在许多情况下,它可以提供“可接受的小”补丁。它还鼓励开发人员认真思考使用具有最小依赖性的良好模块化设计 - 因此即使您在顶部添加更复杂的修补机制,也值得做(在合理范围内)。

如果使用补丁方法,我还建议定期向客户提供完整版本,因为您应用的补丁越多,失去同步的风险就越大。 (考虑一下Windows Update的工作方式 - 操作系统会逐步更新补丁程序,但Microsoft会不时发布一个服务包,将所有小补丁整合到一个大型补丁中,并且不太经常发布一个全新版本的操作系统用户必须从头开始重新安装)