.net 引用dll的路径问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net 引用dll的路径问题相关的知识,希望对你有一定的参考价值。

例如:自己写了一个 aaa.dll,路径 c:\windows\aaa.dll
在工程bbb中引用这个aaa.dll文件,工程bbb的路径是 e:\bbb\
但是引用aaa.dll文件,它就会被复制到 e:\bbb\debug\aaa.dll
如果你删除它,程序bbb还不能运行了。
现在我想就引用 c:\windows\aaa.dll
程序bbb里面没有这个文件。怎样做到啊?
说明:开发工具是 Visual Studio 2005
把bbb工程的生成路径指向 c:\windows\ 是没有用的。
例如工程bbb生成以后。有两个文件 aaa.dll 和 bbb.exe
这个两个工程,编译得到的不同的两个文件。
我的意思是说,别人在安装你这个软件的时候,用户选择路径安装 例如: d:\program files\bbb\bbb.exe
然后安装程序将aaa.dll安装到 c:\windows\aaa.dll
这样,你其他的软件例如ccc.exe给这个用户用,也需要c:\windows\aaa.dll,那就不需要更多的aaa.dll,可以和bbb软件公用。
这样就不怕用户随意指定安装路径而找不到aaa.dll文件了。
很多软件不都这样嘛。
例如你指定安装office到 D:\program files\office
但是你看C盘,安装了很多公用的组件进去

参考技术A 将bbb工程的生成路径指向 c:\windows\

其实你没有这么做的必要!
目前这种情况是正常的啊!

问题补充:
你这样做会带来新问题!比如你公司将aaa.dll做了修改,将会影响别的公司的程序.
.net的优势之一就是多版本共存,避免dll地狱,你现在要抛弃,为何?
参考技术B 解决方案资源管理器 ---引用---右键aaa的引用---属性 复制本地选项选择 false本回答被提问者采纳 参考技术C 显式连接啊 通过对绝对路径的调用 参考技术D 偶也想知道

关于dll文件的引用问题

我自己写了个类库,也在里面测试可以使用了。但我将这个类库dll引用到一个网站或form工程中使用using语句就无法获得到名称空间,就像没有引用这个文件一样。看了网上许多帖子说版本不一致,我再次编译了一下都是相同版本的也没法使用using名称空间。

DLL引用后,无法使用DLL或载入DLL在代码中的原因有以下几个.

    WINFORM中使用了ASP.NET的DLL,同理ASP.NET中引用了WINFORM的DLL.

    使用了对应项目所不支持的类库,函数

    强行硬编码了对应的项目所不支持的配置文件读取代码

如果您需要我详细解答,可能需要您给我更详细的内容.

来自:求助得到的回答
参考技术A 在你的类库编译通过之后,其文件夹bin下面会有相应的.dll文件,可以拷到你要引用的项目下或任何目录下,但是你必须在项目中添加引用这个.dll文件就可以正常使用了。 参考技术B 不知道你的详细情况,但是我的意识中时向下兼容模式,即你的类库DLL如果是2,.0的 完全可以被2.0以及2.0以上的兼容,可以引用,使用using,如果不可以的话,就只能是你的类库生成过程中配置出错。建议你可以详细贴个实例来看看

以上是关于.net 引用dll的路径问题的主要内容,如果未能解决你的问题,请参考以下文章

请教C#/.net高手,用VS结合源码管理团队协作开发,如何处理引用的dll在不同机器路径不一样的问题?

从 ASP.Net 项目中查找 DLL 的路径

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

Visual Studio不会更新新DLL的路径

app.config 引用源代码路径而不是 dll 路径

DLLImport引用的dll的路径能写成相对路径吗