ASP.NET 程序集探测问题

标签 asp.net assemblies

以下是我的目录结构

e:\测试\探测

目录探测包含一个可执行文件[Probing.exe],它加载dll文件(Probe.dll)。

代码是:

namespace Probing

  {
     class Program

     {
        static void Main(string[] args)

        {

                Assembly asm = Assembly.Load("Probe.dll");

                if (asm != null)

                {

                    Console.WriteLine("Assembly Probe is loaded");

                }

                else

                {
                    Console.WriteLine("Assembly Probe is not loaded");
                }

        }
    }
}

dll 文件 (Probe.dl) 位于子目录 ( e:\test\probing\CustomLibraries\Probe.dll ) 中。

我提供了 Probing.exe.config 文件,甚至 App.config 来定位程序集。

配置文件包含以下代码:

<configuration>

<runtime>

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

<probing privatePath="CustomLibraries"/>

</assemblyBinding>

</runtime>

</configuration>

我收到 FileNotFound 异常,直到我将 dll 保留在 Bin 目录中。

我需要你的帮助。(我正在使用 Visual studio 2008 )

最佳答案

尝试调试此问题要做的第一件事是 setup Fusion logging - 这样你就会看到目录被选中。

探测仅适用于应用程序目录下的子目录,因此,正如您所说,如果您的应用程序位于 ...\bin 中,而您的库位于 ...\lib 中,则它将不起作用 - 它们需要位于...\bin\lib。

您需要使用codebase相反

关于ASP.NET 程序集探测问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1448020/

相关文章:

javascript - 如何替换或更改函数 WebForm_OnSubmit()

asp.net - 使用远程浏览器的 ASP.NET 应用程序中的 SmtpException

c# - 数据读取器与指定的不兼容。在数据读取器中没有同名的对应列

mono - 嵌入单声道混淆

c# - 务实地检测我是否忘记包含程序集

c# - 将字符串数组传递给 webservice 方法

javascript - 如何减小 AspNet.ApplicationCookie 的大小以及其中的内容?

C# 相对于程序集 DLL 而不是 EXE 的路径

.net - 拆分组件 - 找到平衡点(避免过度杀伤)

c# - 如何找到调用程序的汇编版本?