• VS未能加载文件或程序集“xxx.dll” 设置Build Events


    完整错误信息:“System.IO.FileNotFoundException”类型的未经处理的异常在 未知模块 中发生
    未能加载文件或程序集“Ctp.Core.dll”或它的某一个依赖项。找不到指定的模块。

    相信大家都碰到过类似的错误,一般出现这个问题原因就是xxx.dll找不到,或者xxx.dll的依赖项找不到

    这是在VS中在运行多项目的时候,发生的一个错误
    简单来说就是有一个C#项目,并列有一个C++ 项目,C++项目会生成一个xxx.dll文件,然后C#引用xxx.dll

    问题是xxx.dll已经成功生成,而且我明明引用了xxx.dll,为什么还会报错呢?
    甚至我已经把xxx.dll直接拷贝到C#项目的bin目录下了,还是依旧报错。。。

    原因就是生成事件(Post-Build-Event)里面把两个项目的输出目录指定到了另一个地方

    选择项目-->右键-->属性--->Build Events--->Post-Build-Event -->Command Line中有这样一句话:

    copy "$(TargetPath)" "$(SolutionDir)Ctp.BuildTarget" /y

    c++项目右键如图:

    C#项目右键如图:

    意思就是把生成的文件拷贝到项目目录下的Ctp.BuildTarget目录下,

    打开项目目录一看,,果然有这个目录,而且下面有C#的.exe和C++的dll,lib文件。。。

    所以在bin目录下自然就找不到xxx.dll了,因为xxx.dll虽然被拷贝过去了,但是xxx.dll还是依赖了别的lib,dll,所以报错

    解决方法:

    选择C#项目-->右键-->属性--->调试

    在调试窗口,选择启动外部调试,然后选择对应的程序目录即可

    本次启动项是C#项目,所以上面的方法即可,如果是C++是启动项也是同理

    项目右键--->属性--->Configuration Propertis-->Debugging-->Command一栏中写入:要调试的程序路径,一般为exe的路径

  • 相关阅读:
    iOS
    UI基本视图控制
    堆和栈的区别 ?
    单例模式
    Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?
    id
    协议
    分类(类别)
    #import和#include以及@class三者的区别?
    内存管理
  • 原文地址:https://www.cnblogs.com/kevinWu7/p/10163453.html
Copyright © 2020-2023  润新知