[英]Call method from regular ClassLibrary within .NET Core?
我们正在更改项目中的一些项目,但偶然发现了集成问题。
有一些第三。 使用常规ClassLibrary(.NET 4.0)编写的第三方DLL,而我们的项目现在位于.NET Standard + AspNet Core。 我们必须更新整个基础架构,同时保持所有功能正常运行。
App_1
调用SomeFramework
,然后调用SomeExternal
。
App_2
还调用SomeFramework
,然后再调用SomeExternal
。
这样做是为了防止直接调用SomeExternal
。 这是项目中不可更改的要求。
我怎么可以参考SomeExternal
到SomeFramework
?
我尝试了直接程序集链接(添加引用>程序集>搜索),但是SomeExternal
无法加载。
我将整个项目设置为x64或x86(而不是AnyCPU),但没有任何更改。
我们正在使用VS2017 15.5.5,.NET 4.7.1和.NET Core SDK 2.1.4。
.NET Core完全支持.NET Standard 2.0,它本身具有足够的API覆盖范围,Microsoft已添加了对.NET Framework库的本机支持。 换句话说,如果您正在运行.NET Core 2.0+,则可以添加对所需的任何.NET Framework库的引用。
但是,您将得到警告。 但是,警告只是让您知道,虽然您可以充分利用该库,但有可能它使用了不受支持的API。 您需要测试并验证一切正常,然后可以根据需要安全地禁止显示警告。
通常,此时不支持的API可以围绕Windows特定的功能来解决。 由于.NET Core和.NET Standard是跨平台的,因此仅适用于Windows的API不会在这两种API的影响范围之内。 但是,即使那样, Microsoft.Windows.Compatibility
NuGet仍然扩展了.NET Standard以支持其中一些缺少的API。 但是,此NuGet仅用于将应用程序迁移到.NET Standard / .NET Core,而不是长期解决方案。 目标仍然应该是从不受支持的API转移到实际上受支持的跨平台API。
您还应该使用API Analyzer ,它将在旧代码和新代码中调出不赞成使用和不支持的API的用法。 这样,在工作时,您会看到仍然需要移植的内容,如果您恢复使用不该使用的内容,则会被提醒。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.