簡體   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