【发布时间】:2014-10-23 14:42:56
【问题描述】:
我一直在尝试加载位于应用程序基目录下的子目录中的私有程序集。我有一个名为 Sparrow.dll 的程序集,它位于 plugins 目录下(也位于应用程序基础目录下)。每当我调用 Assembly.Load("Sparrow") 时,我都会收到 System.IO.FileNotFoundException。
我使用了带有标记的 app.exe.config,它与下面一行相同的程序集的强命名版本一起使用;
Assembly assem = Assembly.Load("Sparrow");
但是,当我将程序集更改为弱程序集时,它不起作用。
配置文件的内容如下;
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly name="Sparrow, Culture=neutral, PublicKeyToken=xxxxxx">
<codeBase version="1.0.1.1" href="plugins/Sparrow.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
我读了很多东西,但我不确定使用标记来定位弱程序集是否是一个好习惯。
【问题讨论】:
-
您在使用弱命名程序集时是否设置了
PublicKeyToken=null? -
@JeanHominal:是的,我做到了。
标签: c# .net .net-assembly assembly-resolution