gpt4 book ai didi

visual-studio-2017 - 为什么我不能在 Windows 通用应用程序中引用 .Net Core 1.0 程序集?

转载 作者:行者123 更新时间:2023-12-02 08:04:11 26 4
gpt4 key购买 nike

我在家里使用 Visual Studio 2017 社区版,并尝试制作我的第一个通用 Windows 应用程序。该解决方案有两个程序集,一个用于 UI,一个用于纯计算。一切都很好,直到我尝试从 UI 程序集中引用计算程序集。它拒绝添加引用。起初,从我的阅读来看,我认为这是目标版本不兼容的问题,但即使我将计算的目标尽可能低,UI的目标尽可能高,也没有区别。

  • 计算程序集是针对 的 C# 类库。 .Net Core 1.0 .
  • UI 组件是通用 Windows,带有 最低目标版本 设置为:
  • “Windows 10 Fall Creators Update (10.0; build 16299 )”或
  • “Windows 10(10.0;内部版本 10240 )”

  • 无论哪种方式,结果都是一样的。当我去 项目 > 添加引用 ... > 项目/解决方案 > 选择 other_assembly 并点击 好的 ,它只是说

    "Unable to add reference to project 'other_assembly'."



    没有解释,没有细节。

    这里有什么障碍?我怎样才能绕过它,或者至少得到错误的详细描述?

    如果我将所有计算源文件复制到 UI 程序集中,一切正常,但我希望能够支持多个平台。

    最佳答案

    因此,当我们在 VS2017 中创建跨平台(例如可以在 Linux 系统上使用)类库时,我们有两种选择,一种是针对 .NET Core ,另一个目标是 .NET Standard .

    .NET Core.NET Standard已经存在了几年,它们仍然使我们大多数人感到困惑。幸运的是,我们有很多 a lot of references在线阅读。你可以谷歌,或者只是在 Stackoverflow 上找到最受好评的答案。

    我想分享一下我学习这个的经验。在我开始在我的 Ubuntu 系统上编写 .NET Core 应用程序之后,我才完全理解这一点。

    .NET Core 是关于能够在多个平台上运行的应用程序 ,因此您有一个 .NET Core 控制台应用程序或 ASP.NET Core 应用程序,您可以在 Windows 或 Ubuntu 上使用相同的“dotnet run”命令运行该应用程序,而无需修改一行代码。

    目前 .NET Core 仅支持两种项目类型,Console 和 ASP.NET Core。 UWP 仍然只是严格意义上的 Windows,您不能编写 UWP 应用程序并期望它在 Windows 以外的其他操作系统上运行。

    另一方面,.NET Standard是关于在不同的 .NET 应用程序之间共享类库代码 - Windows Forms、WPF、UWP、Mono、ASP.NET Core,无论它是什么项目类型。 因为它们都必须实现某些版本的 .NET Standard。这意味着,如果该库被编译为针对一个非常低版本的 .NET Standard(如 1.0),则该库可以被所有人引用,是的,甚至是 WinForms(.NET 平台 4.5 或更高版本)。

    那么让我们回到问题,如果你编译类库以.NET Core为目标,那么它只能被.NET Core应用程序使用,UWP应用程序不能引用它,因为UWP不是跨平台的(UWP只是跨屏,运行在具有各种屏幕尺寸的不同 Windows 10 设备上;))

    一个月后更新 :当我写这个答案时,我从未听说过 MS 发布 .NET Core 3.0 的计划。 2019 年 - 他们将增加对 WinForms 的支持和 WPF到 .NET Core 的下一个主要版本,这意味着我的第 1 点 .NET Core 是关于跨平台的应用程序会有些误导。

    关于visual-studio-2017 - 为什么我不能在 Windows 通用应用程序中引用 .Net Core 1.0 程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53512852/

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