繁体   English   中英

如何获得对 class 库项目的引用才能工作?

[英]How do I get a reference to a class library project to work?

使用以下 2 个文件:

C# Class 库项目目标框架:.NET v 5.0

using System;

namespace ClassLibrary1
{
    public class MyExternalClass { }
}

C# 控制台项目 .NET 框架:4.8

using System;
using ClassLibrary1;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            MyExternalClass myObj = new MyExternalClass();
            Console.WriteLine(myObj.ToString());
            Console.ReadKey();
        }
    }
}

运行程序 System.IO.FileNotFoundException 时出现以下错误:'Could not load file or assembly'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。 该系统找不到指定的文件。'

复制的详细信息:System.IO.FileNotFoundException HResult=0x80070002 消息=无法加载文件或程序集“System.Runtime,版本=5.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。 该系统找不到指定的文件。 来源=堆栈跟踪:

我已经像往常一样添加了库的引用,并且我没有使用 NuGet 中的任何其他包。 这是我能得到的极简主义。 除了 .NET 标准 2.0 之外,这对于每个 .NET 目标框架都存在

我已经阅读了一些可能的修复,涉及手动编辑 Visual Studio 文件,但到目前为止,没有一个对我有用,因为它们已经有好几年了,并且涉及其他版本和框架。

为了能够从 .NET 框架项目中引用库,该库需要以 .NET 框架或 .NET 标准为目标。

.NET 5 和 .NET 框架是不同的野兽。

看到这个的好地方是.NET 标准文章:。 您可以在那里看到 .NET 和 .NET Framework 是表格中显示 .NET 版本的单独行。

在此处输入图像描述

.NET 标准2.0

为什么“除了 .NET 标准 2.0 之外,每个 .NET 目标框架都存在这种情况”的答案可以在同一篇文章中找到:

要查找您可以定位的 .NET 标准的最高版本,请执行以下步骤:

  • (...)
  • 对您要定位的每个平台重复此过程。 如果您有多个目标平台,则应选择其中较小的版本。 例如,如果您要在 .NET Framework 4.8 和 .NET 5.0 上运行,那么您可以使用的最高 .NET Standard 版本是 Z3031BBBE.508EDB9072DAZ6 Standard。

4.8 和 5.0。 这很令人困惑。

是的,这可能会令人困惑

在 2019 年 5 月推出 .NET 5时,.NET 团队的项目经理 Richard Lander 写道:

.NET 5 = .NET 核心 vNext

.NET 5 是 .NET 核心的下一步。 (...) 该项目旨在通过以下几个关键方式改进 .NET:

  • 生成一个单一的 .NET 运行时和框架,可以在任何地方使用,并且具有统一的运行时行为和开发人员体验。
  • Expand the capabilities of .NET by taking the best of .NET Core, .NET Framework, Xamarin and Mono.
  • (...)

后来他写道:

我们跳过第 4 版,因为它会使熟悉 .NET 框架的用户感到困惑,该框架一直在使用 4.x 系列。 此外,我们想清楚地表明 .NET 5 是 .NET 平台的未来。

最后:

查看.NET 核心是 .NET 的未来,了解 .NET 5 与 .NET 框架的关系。

该错误可能是由于版本不匹配或创建项目后发生更改。

重新创建两个针对 4.8 版本的项目,它应该可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM