我正在从事一个大型C#项目,该项目广泛使用代码协定并针对.NET Framework(3.5)的较早版本进行编译。这个项目是一个库,我也正在开发其他应用程序,将其作为依赖项使用。我想将.NET Core 2.1用于这些新项目。我相信我的选择如下:
- 将该库从.NET Framework 3.5升级到.NET Framework 4.6.1+,我相信它将使它与.NET Standard 2.0兼容,从而可用于.NET Core 2.1项目。
- 使用新的.NET Core工具链升级该库,以根据.NET Standard 2.0显式构建。
我有以下问题:
- 看起来像code contracts are dead and unsupported in .NET core;这意味着如果我选择Option(2),我将无法运行代码契约分析器,对吗?
- 如果我使用选项(1),分析器仍然可以运行,但是我必须切换到Igor Beck的非官方NuGet软件包per this answer来支持.NET 4.6.1+,对吗?
理想情况下,我想保留代码契约的好处,尽管由于不支持它们,所以我认识到随着时间的流逝,它将继续使库版本受阻。