C#中导入外部dll文件,如果不放在当前目录下,通过设置工程属性-引用路径选项卡添加文件路径,为何报错啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中导入外部dll文件,如果不放在当前目录下,通过设置工程属性-引用路径选项卡添加文件路径,为何报错啊相关的知识,希望对你有一定的参考价值。

编译的时候是不会有问题的,就是测试运行的时候说dll找不到异常,但是MSDN也没具体讲关于这方面的解决办法,希望各位C#高手帮帮忙!急
就是我现在做得是通过C#去调用C++编写的dll,因为相关的dll文件较多为了统一管理,想放在一个固定的文件系统路径文件夹下就像你说的lib,于是通过项目属性-引用路径选项卡,添加了这个文件夹,程序中就通过dllimport特性调用相应的库函数,但是运行时就报错阿!

C#的引用路径的作用是:指定或者说增加VS搜索.net程序集的路径,默认搜索路径为项目目录。如果你的是win32的dll,那么用该项设置是没有效果的。

建议:
指明DLL的绝对或者相对路径,如:
const string PATH = "绝对或者相对路径";
[DllImport(PATH,CharSet = CharSet.Auto)]
public extern static bool YourMedhod( string str );
参考技术A 建议:
在你的应用下创建一个lib目录,将要引用的外部dll都放入到lib目录中,然后从lib目录中引用dll,这样你就不会有这个问题了(因为dll都被代码统一管理了)。
参考技术B 修改项目属性,添加生成后事件,拷贝dll到输出目录下就行了。 参考技术C 你是怎么引用的?
在你的工程的“解决方案管理器”里有个“引用”字样的灰色文件夹,点右键》添加引用》“浏览”选项卡》找到你的DLL之后确定,在代码开头处使用 using 引用就行了。
参考技术D 那个dll都放在bin目录下,你想干啥?

在jsp页面中导入BootStrap中的文件

BootStrap应该放在项目的根目录下面

然后因为我的jsp页面跟html页面是写在HTML文件夹中,所以我路径的导入应该像下面的图一样,退回到上级目录再写路径。

 

以上是关于C#中导入外部dll文件,如果不放在当前目录下,通过设置工程属性-引用路径选项卡添加文件路径,为何报错啊的主要内容,如果未能解决你的问题,请参考以下文章

如果使用 LoadLibrary 显式链接 dll,则列出从 PE 文件中导入的函数

如何在 Vue 组件中导入外部函数?

一种把dll放在不同目录的巧妙方法

在 PowerShell 脚本中导入依赖 DLL

在maven项目中导入外部jar而不创建依赖项[重复]

SVN如何忽略dll文件和bin目录