• 记一次 .net core引用项目文件,提示找不到dll的问题


    项目背景:

     
    LES.Core.Api需要引用LES.Core.Utility(这个项目是新建的)
    我引用到了,如下图
     
    0
    编译也没有问题,但是运行起来,通过前端调用的时候,提示下面错误
    2021-04-29 16:03:15,704| ERROR
    Could not load file or assembly 'LES.Core.Utility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. 系统找不到指定的文件。
    【自定义错误】:Could not load file or assembly 'LES.Core.Utility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. 系统找不到指定的文件。
    【异常类型】:FileNotFoundException
    【异常信息】:Could not load file or assembly 'LES.Core.Utility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. 系统找不到指定的文件。
    【堆栈调用】: at LES.Core.Api.Controllers.LESPublicController.PieceOnLine(Wip_WorkPieceOnLineParam param)
    at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
    at LES.Core.Api.Controllers.LESPublicController.PieceOnLine(Wip_WorkPieceOnLineParam param)
    at lambda_method496(Closure , Object , Object[] )
    at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Logged|12_1(ControllerActionInvoker invoker)
    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
    --- End of stack trace from previous location ---
    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
    --------------------------------
     
     
     

    排查过程:

    在binDebug et5.0文件夹中发现有这个dll,但是为什么会找不到呢?
    通过百度,发现这个
    说是 deps.json没有配置 LES.Core.Utility,我查看了文件,发现真的没有。
    那为什么没有呢?暂时不清楚。
    怎么解决呢?这个说是自己在deps.json配置 LES.Core.Utility,我感觉不靠谱。
     
    后来我突然发现一个问题,如图
    0
    注意:LES.Core.Extensions是原先引用的,他有左侧的小箭头,说明下面有东西,展开发现是 LES.Core.Extensions引用的那些,如下图
    0
    但是 我新引用的LES.Core.Utility 左侧有没有小箭头,那是不是这里的问题?
    为啥没有小箭头呢?目前还不知道原因。
    但是怎么解决让他有小箭头呢?
    我突然想到了,之前编译的时候出现一个问题呢
    找不到资产文件project.assets.json (详见文档:1、找不到资产文件project.assets.json...
    链接:http://note.youdao.com/noteshare?id=ff18df51fddd24427b2f9ca1360c725a&sub=47EAC4F806594B20B9630C8C126F88DC)
    那种解决方案是 重新还原引用的包。
    所以我尝试的 重新还原了下
    在这种情况下,打开命令行工具
    0
     
    第一步:运行 msbuild -t:restore
    第二步:然后运行 msbuild,或使用 dotnet build(它会自动还原包)。
     
    一通操作之后,再看引用,竟然有了小箭头。
    0
    看起来是正常了。
    再用前台访问,发现可以了。
     

    总结:

    虽然LES.Core.Utility项目中有使用反射的方法,但是这个问题还真不是反射导致的问题。应该是引用的问题,需要重新还原。

    人一定要靠自己
  • 相关阅读:
    淘宝TFS使用笔记(一):初识TFS
    为F5-LTM上的业务添加x-forward-for
    Win7 搭建Linux开发环境
    使用PyQT开发图形界面程序
    二叉树的操作
    Harbor--企业级项目管理
    kubernetes 1.3 使用skydns + kube2dns +etcd部署DNS服务器
    搭建Kubernetes服务集群遇到的问题
    kubernetes1.3搭建dns服务
    搭建Docker私有仓库
  • 原文地址:https://www.cnblogs.com/schangxiang/p/14720999.html
Copyright © 2020-2023  润新知