Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加类库程序集后发生FileNotFoundException_C#_Asp.net_.net_Asp.net Mvc_.net Assembly - Fatal编程技术网

C# 添加类库程序集后发生FileNotFoundException

C# 添加类库程序集后发生FileNotFoundException,c#,asp.net,.net,asp.net-mvc,.net-assembly,C#,Asp.net,.net,Asp.net Mvc,.net Assembly,我有一个ASP.NET MVC核心应用程序,希望在我的项目中添加一个类库。 我通过“添加引用”>“浏览”>选择DLL并完成,将其添加到我的项目中 我在代码中添加了它,就像 using PagarMe; // works good on code 我能够编译并运行这个应用程序。但是,当用户转到引用库的页面时,我得到了一个休止错误: FileNotFoundException:无法加载文件或程序集“PagarMe.Pcl,版本=2.0.6372.16631,区域性=中性,PublicKeyTo

我有一个ASP.NET MVC核心应用程序,希望在我的项目中添加一个类库。 我通过“添加引用”>“浏览”>选择DLL并完成,将其添加到我的项目中

我在代码中添加了它,就像

using PagarMe; // works good on code 
我能够编译并运行这个应用程序。但是,当用户转到引用库的页面时,我得到了一个休止错误:

FileNotFoundException:无法加载文件或程序集“PagarMe.Pcl,版本=2.0.6372.16631,区域性=中性,PublicKeyToken=null”。系统找不到指定的文件

我已经做了什么

  • 我检查了output bin文件夹,Dlls文件在那里
  • 这两个DLL都是使用“任意CPU”配置编译的
  • 我试过PCL和非PCL版本
  • 应用程序目标框架:.NETCoreApp 1.1
  • 默认类库目标框架:.Net Framework 4.5
  • 可移植(PCL)类库目标框架:.Net Framework 4.5和ASP.Net Core 1.0

要在我的Core应用程序中使用类库或PCL库,我可以做些什么?

在.NET Core中,您不再使用可移植类库,而是针对正确版本的。某些PCL或共享类可能使用某些不受支持的 参考资料

要解决此问题,请尝试以下方法之一:

1。将类库重建为目标.NET标准。例如,.NETCore1.0和.NETFramework 4.6.1都支持NET标准1.6

NET标准可以被认为是下一代可移植类库(PCL)。NET标准通过管理标准BCL和建立跨.NET运行时的更大一致性,改进了创建可移植库的经验。以.NET标准为目标的库是PCL或基于.NET标准的PCL。现有PCL是“基于配置文件的PCL”。(摘自文件)

2。将应用程序定位到.NET Framework。 您可以构建一个ASP.NET核心应用程序来针对完整的.NET框架,而不仅仅是.NET核心。这将为您提供ASP.NET Core的优势,而不受.NET Core的限制


ASP.NET核心!=。NET Core

打开fusion日志记录。这将告诉您活页夹在哪里查找程序集,以及它希望找到什么。然后你就知道为什么它不存在了。类库的目标是.NET Framework/.NET标准库的哪个版本?该版本是否与您正在使用的.NET Core版本兼容?当您添加dll作为引用时,只要dll发生更改或不存在,它就会将dll复制到bin文件夹。dll是否希望Pcl文件与dll位于同一文件夹中?如果是这样,您需要将Pcl复制到bin文件夹中。@RickvandenBosch编辑了问题,并提供了更多详细信息您是说我无法将PLC LIB用于我的核心应用程序吗?以.Net Framework 4.5为目标的默认类库如何?默认类库也不能很好地使用.NETCore,因为它可能使用其他.NETCore运行时不支持的API。这就是.NET标准的目的:定义平台支持的一组API。针对.NET标准比使用带有.NET核心的PCL更容易。请看我在回答中添加的链接,因为它的末尾还有一个PCL兼容性部分,它解释了特定PCL配置文件是否兼容以及如何兼容。我理解。一旦我无法重建类库(因为它不是我的),我还能做些什么吗?@DanielSantos您可以构建一个ASP.NET核心应用程序,该应用程序的目标是完整的.NET框架,而不是.NET核心。这将为您提供ASP.NET Core的优势,而不受.NET Core的限制。ASP.NET核心!=。那太完美了。你能把这个加在你的答案上吗?我很乐意接受。