ASP .NET CORE 找不到带有自定义程序集的文件或程序集

Posted

技术标签:

【中文标题】ASP .NET CORE 找不到带有自定义程序集的文件或程序集【英文标题】:ASP .NET CORE could not find file or assembly with custom assembly 【发布时间】:2017-10-13 11:35:12 【问题描述】:

我遇到了一个奇怪的问题。

我基本上有自己的 .NET-core 网络堆栈,我已将其内置到几个 .dll 中,我想从另一个 ASP CORE 解决方案中引用这些。

VS 似乎找到了程序集,我可以在其中导航类型等。 我也可以毫无问题地构建项目,但是当 IIS 然后运行服务器时,我得到一个内部服务器错误说明:

FileNotFoundException:无法加载文件或程序集“myDLL,版本=1.0.0.0,Culture=neutral,PublicKeyToken=null”。系统找不到指定的文件。

引用的 DLL 在调试文件夹中,真正奇怪的是,如果我在与 web 堆栈相同的解决方案中创建一个新的 ASP Core 项目,我可以毫无问题地引用和使用它。

为什么只有在 web 堆栈解决方案之外的项目上运行时才会发生这种情况,我该怎么做才能让它在任何地方都可以运行?

【问题讨论】:

您是否设置了要复制到输出文件夹的参考? (参见参考的属性) @Tseng 是的,我试过了。可悲的是没有改变 您确定您没有尝试在netcoreapp1.x 项目中引用net4xx 库? @Tseng 肯定的。该库和网络项目都针对 .NETCoreApp 1.1 库通常不必以netcoreapp1.x 为目标,极少数例外是需要netstandard1.x 中不可用的仅.NET Core API。您应该始终尝试定位 netstandard 【参考方案1】:

VS 2017(.deps.json 文件。加载任意程序集时,这可能会失败,因为找不到程序集或其依赖项(或相互冲突)。

【讨论】:

有道理。我会试试这个然后回来 就是这样。我勾选了 Generate NuGet package on build-box 在 project-properties -> 包下,并将这些包本地安装到我的新 web 项目中。 我已经为这个确切的答案寻找了几天。这是 dotnetcore、dotnet cli、nuget、msbuild 或 csproj 文档中的任何地方吗?我在其中唯一看到的是它说要添加包引用或对另一个项目的引用。我想这是隐含的,但是对于我们这些试图添加磁盘程序集的人来说,有某种声明会很好。非常感谢这个答案;真的很有帮助。 我使用的是VS 2017 v15.3.5,这个版本的VS已经修复了吗?在这里遇到了同样的问题。 在 v15.4.0 中遇到同样的问题【参考方案2】:

为了在core项目中加载external dll,需要:

    vs 2017 版本 15.3 或更高版本。 Microsoft.Extensions.DependencyModel NuGet 包已安装在您的项目中。

【讨论】:

以上是关于ASP .NET CORE 找不到带有自定义程序集的文件或程序集的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 3:如何在自定义库中引用 3.0.0 程序集?

带有 Windows 身份验证的 ASP.NET Core 2.1 自定义 RoleProvider

自定义页面过滤器中的 ASP .NET Core 注入服务

带有取消令牌的自定义 ASP.NET Core 中间件

asp.ner core 6.0路由找不到

请问asp.net dll 编译时 找不到类型或命名空间名称“名称”(是不是缺少 using 指令或程序集引用你如何解决了