如何更改引用dll(.Net私有程序集)的路径

jwh2004 2010-06-18 08:52:44
我的工程中要用到一个第三方的控件,在VS的IDE中添加了该控件后,VS自动在属性窗体
的引用中添加了组件对应的dll引用。当前我必须将该dll引用属性的“复制本地”设置为“true”
才能正常运行程序。
我现在想将该.Net私有程序集文件(即.dll文件)拷贝到"C:\WINDOWS\system32"中,
在IDE中将“复制本地”属性设置为“false”,以便编译时不在“bin\Debug”目录中自动复制
该dll文件,请问程序中应添加哪些代码,才能使程序使用正确的引用dll的路径。
...全文
1077 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwh2004 2010-06-29
  • 打赏
  • 举报
回复
按照8楼说的试了一下,将引用删除后,手工添加C:\WINDOWS\system32下的dll程序集文件,并将“复制本地”设置为“false”。运行程序时,报错-找不到程序集。
jwh2004 2010-06-29
  • 打赏
  • 举报
回复
在窗体上添加该第三方控件时vs会自动添加引用,若“复制本地”设置为“true”时则自动在Debug目录下生成了4个.Net私有程序集文件。
现在可以在Debug目录下新建一个dll的目录,并将此.Net私有程序集文件移至该目录中。我现在想知道,可否将.Net私有程序集文件移至Debug以外的目录,并通过配置后使程序正常运行,还是说这样一定不可行?
yaazz 2010-06-29
  • 打赏
  • 举报
回复
不知删除后手工添加引用行不
jwh2004 2010-06-29
  • 打赏
  • 举报
回复
期待能有人给个明确的答复
jwh2004 2010-06-28
  • 打赏
  • 举报
回复
自己顶一下
jwh2004 2010-06-18
  • 打赏
  • 举报
回复
因为是私有程序集 没有强名,所以不能安装到GAC中。
我现在就是用的配置文件,但是用<probing privatePath="C:\WINDOWS\system32"/>也是运行出错,提示未能加载程序集。
我看到网上有下面这样一句话:
“私有程序集部署有一个值得注意的局限,那就是它决不能部署到 ApplicationBase 目录的外部。您不能在两个或多个已部署到单独目录中的应用程序之间共享私有程序集。”
不知是否就真是这样了?
足球中国 2010-06-18
  • 打赏
  • 举报
回复
安装的时候选择system32文件夹就可以了。选哪个文件夹你可以在安装的时候设置。
捷哥1999 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 caozhy 的回复:]

方法一:将dll注册到GAC里面
方法二:用Assembly.LoadFrom(FileName)装入

<probing privatePath="C:\\WINDOWS\\system32"/>没有必要用双斜杠
[/Quote]

放到GAC,默认就会搜索GAC,所以引用没有问题。
动态载入也是一种方法。用到了反射。
配置文件也行,呵呵。
threenewbee 2010-06-18
  • 打赏
  • 举报
回复
方法一:将dll注册到GAC里面
方法二:用Assembly.LoadFrom(FileName)装入

<probing privatePath="C:\\WINDOWS\\system32"/>没有必要用双斜杠
jwh2004 2010-06-18
  • 打赏
  • 举报
回复
自己顶一下
我在工程中加了一个“App.config”文件,写入:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="dll"/>
</assemblyBinding>
</runtime>
</configuration>

在Debug目录下建了一个名为"dll"的子目录,将dll程序集拷到此目录中,
将“复制本地”属性设置为“false”,可以正常运行程序。

但是若改成
<probing privatePath="C:\\WINDOWS\\system32"/>

<probing privatePath="file://localhost\\C:\\WINDOWS\\system32"/>
在C:\WINDOWS\system32下也拷入了dll程序集,但运行出错,提示未能加载程序集,
高手给看看应如何修改呀!

110,534

社区成员

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

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

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