C#从PrivateBin加载dll

时间:2013-07-02 15:56:09

标签: asp.net bin

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

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



    void Application_Start(object sender, EventArgs 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>

我觉得我错过了什么。

1 个答案:

答案 0 :(得分:0)

一些想法

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

  2. 私有bin dll是否具有私有bin中不存在的依赖

  3. 您可以使用fusion log viewer检查应用中dll的绑定。这应该表明是否有约束

  4. 检查专用bin文件夹的权限。用锤子击打它,并为每个人提供该文件夹的完全权限。看看是否会提起它

  5. 作为临时措施 - 将私有bin文件夹作为bin目录下的子目录。那现在有效吗?如果确实有效,那可能是一个永久的解决方案。可能不是你的好人

  6. 对于类似的问题,这是一个很好的答案 - 有一个很好的图表,你可能会觉得有用

    How do I reference assemblies outside the bin folder in an ASP.net application?

    当然祝你好运