我正在努力将一个庞大的代码库转向支持.NET Core。目前,所有内容都基于.NET Framework。我有一组库项目,被多个Web应用程序使用。
计划是将库项目转换为.NET Standard 2.0,以便可以被.NET Framework(版本4.7.1)和新的.NET Core(版本2.0)网站使用。我做了一些测试解决方案,证明这是可行的。
为了将第一个库转换为.NET Standard,我不得不利用Windows兼容性包来处理一些不属于.NET Standard的功能。一些功能,例如SqlClient和一些System.Drawing工具必须导入到库中。所有这些都起作用了,但在尝试将我的库引入仍针对.NET Framework的代码时出现了问题。
即使命名空间相同,消费代码也无法看到对象(例如Image或SqlConnection),除非我将相同的Windows兼容性包库添加到消费项目中。如果说有什么问题,我原本以为会出现问题,因为现在我有两个相同的类(相同的命名空间和对象名称)在不同的程序集中。幸运的是,它正在工作。至少单元测试还通过了。
这就是Windows兼容性包库应该工作的方式吗?我希望它们能够在.NET Standard或.NET Core代码中提供功能,但仍然允许.NET Framework使用自己的实现。
计划是将库项目转换为.NET Standard 2.0,以便可以被.NET Framework(版本4.7.1)和新的.NET Core(版本2.0)网站使用。我做了一些测试解决方案,证明这是可行的。
为了将第一个库转换为.NET Standard,我不得不利用Windows兼容性包来处理一些不属于.NET Standard的功能。一些功能,例如SqlClient和一些System.Drawing工具必须导入到库中。所有这些都起作用了,但在尝试将我的库引入仍针对.NET Framework的代码时出现了问题。
即使命名空间相同,消费代码也无法看到对象(例如Image或SqlConnection),除非我将相同的Windows兼容性包库添加到消费项目中。如果说有什么问题,我原本以为会出现问题,因为现在我有两个相同的类(相同的命名空间和对象名称)在不同的程序集中。幸运的是,它正在工作。至少单元测试还通过了。
这就是Windows兼容性包库应该工作的方式吗?我希望它们能够在.NET Standard或.NET Core代码中提供功能,但仍然允许.NET Framework使用自己的实现。