exe和dll不在同一路径下,执行时exe可否引用这个dll

jxin114 2008-02-21 04:40:23
编译是没有问题的,vs2005可以找到这个dll,但是把exe和dll发布出去后,由于exe和dll不在同一目录里,exe就找不到这个dll,请问有什么解决办法吗?
...全文
424 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
genlinux 2008-02-22
  • 打赏
  • 举报
回复
app.config
jxin114 2008-02-22
  • 打赏
  • 举报
回复
自己在顶一下
lextm 2008-02-22
  • 打赏
  • 举报
回复
我一般直接用代码,AppDomain.AppendPrivatePath。

使用配置文件达到的效果是一样的。
jxin114 2008-02-21
  • 打赏
  • 举报
回复
子目录阿,艾
lake_cx 2008-02-21
  • 打赏
  • 举报
回复
privatePath 属性包含运行库应在其中搜索程序集的目录。如果应用程序位于 C:\Program Files\MyApp,那么运行库将在 C:\Program Files\MyApp\Bin、C:\Program Files\MyApp\Bin2\Subbin 和 C:\Program Files\MyApp\Bin3 中查找未指定基本代码的程序集。privatePath 中指定的目录必须是应用程序基目录的子目录。
jxin114 2008-02-21
  • 打赏
  • 举报
回复
dll在exe所在的目录的子目录里倒是能找到的,反过来却找不到了
jxin114 2008-02-21
  • 打赏
  • 举报
回复
配置文件是有了,但是exe还是找不到dll,是不是配置文件写得不对?
<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<runtime>
<gcConcurrent enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<publisherPolicy apply="yes" />
<probing privatePath="..\" />
</assemblyBinding>
</runtime>
</configuration>
dll是在exe的上一级目录里的
机器人 2008-02-21
  • 打赏
  • 举报
回复
工程建立和发布时类似的目录结构,把那个dll拷贝到那个目录,然后在你的项目里通过browse引用。发布时就可以用了,也不特殊设定什么。

「已注销」 2008-02-21
  • 打赏
  • 举报
回复
可以通过IDE的新建类里头的app.config添加
然后参照下MSDN了。
lake_cx 2008-02-21
  • 打赏
  • 举报
回复
项目-属性-设置
随便点一下就行了,资源管理器里面就会多一个app.config的文件
编译后他会与你的exe同名,只不过扩展名是.config
jxin114 2008-02-21
  • 打赏
  • 举报
回复
能拷到同一目录就不存在这个问题了
请问lake_cx,这个配置文件的文件名有要求么,它是怎么和工程联系起来的?
blestcc 2008-02-21
  • 打赏
  • 举报
回复
copy到同一目录就行了
lake_cx 2008-02-21
  • 打赏
  • 举报
回复
在配置文件的configuration节点下加上(似乎要加在最后才行)
<runtime>
<gcConcurrent enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<publisherPolicy apply="yes" />
<probing privatePath="exe的相对目录" />
</assemblyBinding>
</runtime>

111,117

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧