gpt4 book ai didi

asp.net - 如何在ASP.net应用程序的bin文件夹之外引用程序集?

转载 作者:行者123 更新时间:2023-12-04 03:14:08 25 4
gpt4 key购买 nike

我有一个用ASP.Net编写的可工作的XML Web服务。现在我需要引用位于特定文件夹中的某些程序集,例如c:\NotMyCode不想要将那个文件夹中的成千上万个dll复制/复制到我的bin文件夹中。

我试图为Web服务中引用的程序集保留CopyLocal=false。最终导致程序集的FileNotFound异常。
当我切换到CopyLocal=true时,引用的DLL被复制到bin文件夹中。

所以我的问题是:
如何引用不在我的bin文件夹或其下面的子文件夹中的程序集?我是否需要在某个地方更改一些安全策略文件?我想我不是第一个想要做这样的事情的人。所以我假设有人已经解决了这个问题。

(我曾尝试在IIS ASP.net配置面板中模拟管理员用户,但这也不起作用。)

更新:都无法将其安装在GAC中。打个比方,此Web服务将简化的 View 提供给第三方应用程序,例如星空队。我不能(不必..不想)将该文件夹中的所有二进制文件复制到bin文件夹或将其安装到GAC中

最佳答案

根据MSDN documentation

应用程序根目录之外的引用程序集必须具有强名称,并且必须安装在全局程序集缓存中或使用<codeBase>元素指定。

因此,您似乎不走运。这是我尝试的方法:

  • 在应用程序基本目录下创建一个NTFS junction point,该目录指向包含共享代码的目录。这是关键步骤。例如,在您的应用程序基本目录中,运行linkd SharedCode c:\NotMyCode。这使得<yourappbase>\SharedCode有效地成为c:\NotMyCode的别名。
  • 告诉ASP.NET使用 <probing> 元素并引用连接点SharedCode来探测此路径中的程序集。由于这是在您的应用程序库中,因此应该可以使用。或者,使用AppDomainSetup.PrivateBinPath设置为程序集探测的路径。

  • 我很好奇这是否可行:-)

    关于asp.net - 如何在ASP.net应用程序的bin文件夹之外引用程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1206138/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com