Gis*_*shu 10 asp.net assembly-resolution
我有一个用ASP.Net编写的工作XML Web服务.现在我需要引用位于特定文件夹中的某些程序集,例如c:\NotMyCode
我不想将该文件夹中的数百万个dll复制/复制到我的bin文件夹中.
我试图保留CopyLocal=falseWeb服务中引用的程序集.最终导致程序集的FileNotFound异常.当我切换到CopyLocal=true,引用的DLL被复制到bin文件夹..它的工作原理.
所以我的问题是:如何引用不在我的bin文件夹或它下面的子文件夹中的程序集?我是否需要在某处更改某些安全策略文件?我想我不是第一个想做这样事情的人......所以我假设有人已经解决了这个问题.
(我已经尝试在IIS ASP.net配置面板中模拟管理员用户,但这也没有用.)
更新:无法将其安装在GAC中.举一个类比,这个Web服务给第三方应用程序提供了一个简化的视图,例如Starteam.我不能(不应该......不想......)将该文件夹中的所有二进制文件复制到bin文件夹或将其安装到GAC中
Vin*_*jip 14
根据MSDN文档,
应用程序根目录外部的引用程序集必须具有强名称,并且必须安装在全局程序集缓存中或使用该<codeBase>元素指定.
所以,看起来你运气不好.这是我尝试的:
linkd SharedCode c:\NotMyCode.这<yourappbase>\SharedCode实际上是一个别名c:\NotMyCode.<probing>引用连接点的元素来探测此路径中的程序集SharedCode.由于这是在您的应用程序基础之下,它应该工作.或者,使用AppDomainSetup.PrivateBinPath设置探测程序集的路径.我很好奇,看看这是否有效:-)
您始终可以将引用的程序集放入 GAC 中,然后位置就不再重要了。您可以通过将组件拖到 GAC (C:\windows\Assembly) 或运行 GACUtil.exe 来安装该组件。
这篇文章可能会有所帮助。它描述了“程序集加载的最佳实践”。
起初我以为您可以使用<probing privatePath="bin\debug"/>web.config 中的runtime/ assemblyBinding 中的元素,但是探测将只允许您指定根位置下的子目录。
| 归档时间: |
|
| 查看次数: |
11857 次 |
| 最近记录: |