3

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

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


    void Application_Start(对象发送者,EventArgs e)
        {
            AppDomain.CurrentDomain.SetupInformation.PrivateBinPath = Server.MapPath("~/my_DLLS");
        }

然后在我的 .cs 文件中使用 using 语句包含该 dll,但我收到编译器错误消息:CS0246:找不到类型或命名空间名称“DLLNAME”(您是否缺少 using 指令或程序集引用?)

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


    <运行时>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <probing privatePath="my_DLLS" />
        </汇编绑定>
      </运行时>

我觉得我错过了一些东西。

4

1 回答 1

0

一些想法

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

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

  3. 您可以使用融合日志查看器来检查应用程序中 dll 的绑定。那应该表明是否有绑定

  4. 检查私人 bin 文件夹的权限。用锤子敲击它,并授予每个人对该文件夹的完全权限。看看这是否带来了它

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

这是关于类似问题的一个很好的答案 - 有一个很好的图表,你可能会觉得有帮助

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

当然祝你好运

于 2013-07-02T16:19:13.690 回答