Asp.net C#加载dll';那是从私掠舱来的

Asp.net C#加载dll';那是从私掠舱来的,asp.net,bin,Asp.net,Bin,我有一个asp.net网站项目。我需要使用几个自定义dll的,我不能复制到bin目录 我试图创建一个自定义bin文件夹,并在Application_Start PrivateBinPath的Global.asax中将其设置为该目录 void Application_Start(object sender, EventArgs e) { AppDomain.CurrentDomain.SetupInformation.PrivateBinPath = Se

我有一个asp.net网站项目。我需要使用几个自定义dll的,我不能复制到bin目录

我试图创建一个自定义bin文件夹,并在Application_Start PrivateBinPath的Global.asax中将其设置为该目录

void Application_Start(object sender, EventArgs e) { AppDomain.CurrentDomain.SetupInformation.PrivateBinPath = Server.MapPath("~/my_DLLS"); } 无效应用程序\u启动(对象发送方,事件参数e) { AppDomain.CurrentDomain.SetupInformation.PrivateBinPath=Server.MapPath(“~/my_-DLLS”); } 然后在我的.cs文件中使用using语句包含该dll,但我得到 编译器错误消息:CS0246:找不到类型或命名空间名称“DLLNAME”(是否缺少using指令或程序集引用?)

我还尝试在web.config中添加assemblyBinding

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="my_DLLS" /> </assemblyBinding> </runtime> 我觉得我错过了什么

一些想法

  • 确保您的私有bin路径位于应用程序根目录下(您的代码表明它位于根目录下,但只需确认)

  • 专用bin DLL是否有任何不在专用bin中的依赖项

  • 您可以使用检查应用程序中DLL的绑定。这应该表明是否存在绑定

  • 检查对专用bin文件夹的权限。用锤子敲打它,并给予每个人对该文件夹的完全权限。看看这能不能把事情提出来

  • 作为临时措施-将专用bin文件夹作为子目录放在bin文件夹下。现在行了吗?如果它真的起作用,这可能是一个永久性的解决方案吗。你可能不喜欢

  • 对于类似的问题,这是一个很好的答案——有一个很好的图表,您可能会发现它很有用


    当然,祝你好运

    尝试将整个项目移动到一个易于访问的路径,如C:\Test,无空格或任何内容,然后重试。项目位于服务器上。路径不包含空格。我可以引用bin目录中的所有dll,但不能引用自定义目录中的dll我的自定义bin目录与bin处于同一级别,权限与bin完全相同。其中一个dll是PdfSharp.dll,在我得到这一行中的错误PdfSharp.PdfDocument document=new PdfSharp.PdfDocument();erm-如果在该行中出现错误,那么它肯定会加载PdfSharp.dll。所以它是在寻找你的私人垃圾箱。可能是一种依赖。你试过fusion日志查看器了吗?刚刚试过。看起来不错。如果我将dll从自定义文件夹移回存储箱,一切正常。我把它移回去,它就不动了。我正在与其他dll和相同的错误。编译器错误消息:CS0246:找不到类型或命名空间名称“FreeTextBoxControls”(是否缺少using指令或程序集引用?);我能够循环遍历每个程序集,我确实看到了我在循环时加载的程序集。我尝试了dll的所有方法,但程序集FreeTextBox,版本=3.3.1.12354,区域性=中性,PublicKeyToken=5962a4e684a48b87 Namespace=Name GetTypes FreeTextBoxControls=ToolbarListItem GetTypes FreeTextBoxControls=AssemblyResourceHandler GetTypes FreeTextBoxControls=ImageGallery,但Namespace FreeTextBoxControls没有给我任何方法