从 ASP.NET Web 应用程序引用 .NET 标准库

问题描述 投票:0回答:1

标题已经说明了一切。我有一个在 .NET 4.8.1 上运行的网站。目前还有一大堆针对 .NET 4.8.1 的库。

我想在新的 .NET Core 应用程序中使用大量这些库。 由于这些库之一包含大量对不再包含在 .NET Standard/.NET Core 中的成员身份的引用,因此我将成员身份更改为 Identity。我将其中一些文件放入一个面向 .NET Standard 2.0 的新项目中,以便将来我也可以在新的 Blazor Web 应用程序中使用身份。

但是,当我从 ASP.NET Web 应用程序引用此项目时,Visual Studio 不会显示任何构建错误,但当我尝试运行该 Web 应用程序时,出现以下错误:

无法加载文件或程序集“netstandard,Version=2.1.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”或其依赖项之一。系统找不到指定的文件。

异常详细信息:System.IO.FileNotFoundException:无法加载文件或程序集“netstandard,Version=2.1.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”或其依赖项之一。系统找不到指定的文件。

我怎样才能确保它有效?

我尝试将 ASP.NET Web 应用程序更新为包引用,但随后 Visual Studio 抛出错误,指出我的项目不适用于更新为包引用。

有办法让这个工作成功吗?尝试通过 nuget 安装 netstandard.library 但这也不起作用。

谢谢

c# visual-studio nuget-package .net-standard .net-framework-version
1个回答
0
投票

如果我理解正确的话,您有一个 .NET Core 应用程序引用 .NET Standard 程序集,而 .NET Standard 程序集又引用 .NET Framework 程序集。如果是这样,这将尝试将 .NET Framework 程序集加载到 .NET Core 运行时中。

不能混合使用 .NET Framework 和 .NET Core。每个都有自己的运行时间;你必须选择其中之一。但是,您可以从任一运行时引用 .NET Standard 程序集。

考虑 .NET 8。虽然它是 .NET Core 的演变,但它应该包含您想要从 .NET Framework 中获得的组件,或者通过新库提供等效功能。请注意,与您经常添加程序集引用的 .NET Framework 不同,在 .NET 8 中,几乎所有超出基础知识的内容都必须通过 nuget 添加。

© www.soinside.com 2019 - 2024. All rights reserved.