标题已经说明了一切。我有一个在 .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 但这也不起作用。
谢谢
如果我理解正确的话,您有一个 .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 添加。