gpt4 book ai didi

.net - 如何创建类库的版本以支持 .NET Framework 的多个版本?

转载 作者:行者123 更新时间:2023-12-04 22:49:28 24 4
gpt4 key购买 nike

我正在尝试编写一系列在组织内的多个应用程序之间使用的类库。其中一些应用程序面向 .NET 3.5,一些面向 4.0。

我们希望提供两个版本的程序集,一个针对 3.5,一个针对 4.0,以便宿主应用程序可以选择最适合它们的程序集。

3.5 和 4.0 版本之间有一些细微的区别:

  • 由于被 .NET 4.0 版本取代,一些类已被删除。
  • 添加了一些类以帮助处理 .NET 4.0 引入的类。
  • 4.0 版本中对某些类进行了修改,以利用 4.0 中一些增强的线程支持。

  • 是否有任何解决方案可以让我重用代码库的重叠部分并防止简单地 fork 源树?

    我的目标是针对其指定的框架生成多个版本的程序集,这些版本可以滚动到 NuGet 包中并在我们的内部提要上公开。

    最佳答案

    这听起来像是条件编译器指令的工作。

    将您的代码添加到:

    #If NET35
    ...
    #End If


    #If NET40
    ...
    #End If

    从这里开始,您必须添加 NET35NET40编译常量添加到您的项目中,我建议首先在配置管理器中创建自定义配置,例如 DebugNET35 , DebugNET40 , ReleaseNET35 , 和 ReleaseNET40 .创建这些配置后,您可以切换到每个配置并转到项目的高级编译选项,您可以在其中设置自定义常量 NET35NET40 ,取决于当前配置。

    您也可以在此对话框中设置目标框架,但它会全局设置您的框架版本。要为每个配置设置自定义目标框架,请遵循 Pierre's Steps .

    之后,选择一个配置并编译!我已经使用这种技术为应用程序的“演示”和“完整”版本共享相同的代码库。

    希望 Visual Studio 的 future 版本将自动包含框架版本定义: https://connect.microsoft.com/VisualStudio/feedback/details/113323/include-framework-version-defines-automatically

    编辑: .NET Framework 博客中有一篇新文章讨论了在 Visual Studio 2010 和 2012 中编写可移植代码库: http://blogs.msdn.com/b/dotnet/archive/2012/07/06/targeting-multiple-platforms-with-portable-code-overview.aspx ,这看起来像一个更干净的解决方案。

    关于.net - 如何创建类库的版本以支持 .NET Framework 的多个版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11052908/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com