【问题标题】:What happens if I add PackageReference net46 in a NET Core library?如果我在 NET Core 库中添加 PackageReference net46 会发生什么?
【发布时间】:2017-04-11 16:13:09
【问题描述】:

我想在 NET Core 中创建一个库,我可以在 WPF 应用程序以及未来的 android 应用程序中使用它。所以这就是我在 NET Core 库中思考的原因。

但是,如果我在我的 WPF 项目中添加对该项目的引用,则该引用有一个黄色三角形,我猜是因为它们不兼容。

所以在我的 NET Core 库的 csproject 文件中,我在 propertyGroup 中添加了这个:

<TargetFramework>net46</TargetFramework>

所以现在我可以毫无问题地在我的 WPF 项目中引用。但是,我想知道这对图书馆有何影响。我的意思是,如果我是否可以在 android 应用程序中使用,因为它如何引用 NET Framework,也许 NET Core 库现在取决于它,以及 NET Framework 如何在 android 上不可用,我想也许我可以'不要使用它。

那么,它有什么影响呢?

谢谢。

【问题讨论】:

    标签: c# wpf .net-core


    【解决方案1】:

    WPF 项目和一般的 .NET 框架应用程序不能引用 .NET Core 库。它们位于 Microsoft 生态系统的不同部分。

    但是,.NET Core 项目和 .NET 框架项目都可以使用 .NET Standard 库(Xamarin 也可以)。您只需针对所有平台都支持的 .NET Standard 版本。

    您可以在https://docs.microsoft.com/en-us/dotnet/articles/standard/library 找到 .NET Standard 的完整说明,以及查看哪些平台支持哪些版本。

    【讨论】:

    • 然后,我需要我的 WPF 项目、我的 NET Core 项目和第三个项目,它将是 NET Standard 吗?但是这第三个项目有什么意义呢?
    • @ÁlvaroGarcía 如果您实际上有一个针对该平台的应用程序,您只需要 .NET Core 项目(不太可能,因为 Core 还没有 UI 技术)。我不确定我是否理解您的第二个问题; .NET Standard 库是一个。它可以放在你通常放置库的任何地方
    • 我的意思是,NET Standard 使用什么版本的 NET?我将在这个库中编写的代码是 net46、NET Core 还是其他版本的 NET?起初我想使用 NET Core,因为我读过它比 NET Famework 具有更好的性能,所以我不知道使用 NET Standard 是否会有 NET Core 的优势。我知道也许我混淆了两件不同的事情,我正在努力理清我的想法。谢谢。
    • @ÁlvaroGarcía 不,您不会拥有 .NET Core 的速度优势。 .NET Standard 只是在 .NET Framework、.NET Core 和 Xamarin 应用程序之间共享代码的一种方式。库代码与使用应用程序在同一框架上运行。
    • @ÁlvaroGarcía 请注意,您可以将库多目标定位到 net46 和 netstandard。然后它将针对两个平台(两个单独的 dll)进行编译。只有在需要 netstandard 之外的东西时才应该这样做。当然,您只能在网络版本中使用此类功能,但代码库将大部分是共享的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 2019-10-07
    相关资源
    最近更新 更多