你如何处理向后/向前.Net框架兼容性(和软件分发)?

时间:2015-08-31 18:53:47

标签: c# .net clr compatibility

假设我使用.Net 4.5创建了一个控制台应用程序(为简单起见,对GUI或Web框架的版本没有复杂的依赖关系)。明年," .Net 5"已发布,我想更新我的应用程序以使用花哨的新API(以提高性能,源代码可读性等)。但是,我仍然希望为尚未升级其运行时的用户维护(关键错误修复等)应用程序的先前版本。

这种情况如何处理?我是否需要提供2个可执行文件并要求用户下载适当的可执行文件,或者是否有办法分发单个可执行文件/安装程序来确定自动运行哪个版本?

或者,这是一个有效的问题吗?如果我想继续支持" old" .Net 4.5 am我有义务继续建立这个框架吗?

1 个答案:

答案 0 :(得分:0)

Wix Toolset等许多安装程序可能会提供implement custom actions的方法,因此您可以检测目标系统中安装的最新框架版本,并决定在那里部署哪些可执行文件。 Check this Wix Toolset article about .NET Framework version detection

另一方面,如果要使用以前框架版本中不可用的较新功能并合并更改并使它们兼容,则需要为每个目标框架版本维护源代码分支。

如果代码周围使用的功能非常有限,you can still use preprocessor directives#if NETFX_45或您可以添加到项目中的任何编译符号,并根据预处理器条件编译为一个或其他框架版本。< / p>

无论如何,您的最终解决方案将是以正确方式处理代码版本和创建自定义安装程序操作以检测用户目标系统的组合。