作为我之前提出的问题的延续。
我通过以下代码加载DLL。 示例1:
我通过以下代码加载DLL。 示例1:
var assembly = Assembly.LoadFile("C:\\Temp\\PROCESSOR\\SKM.dll");
我使用了序列化,它内部使用了这段代码,例如2:
而且这个工作得很好。
var ass1 = Assembly.Load("SKM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");
这段代码会抛出异常:System.Runtime.Serialization.SerializationException: Unable to find assembly "SKM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null".
因为DLL在一个单独的文件夹中。
如何强制CLR在单独的目录中看到DLL(而不是主应用程序的子文件夹)?
我尝试了以下方法:
<codeBase version="1.0.0.0" href="C:\\Temp\\PROCESSOR\\SKM.dll"/>
- 不起作用,因为它只适用于子文件夹。<probing privatePath="paths"/>
- 不起作用,因为它只适用于子文件夹。- 先运行第一个示例,然后再运行第二个示例。但即使
SKM.dll
已加载,CLR也无法看到我的程序集。