我已经查看了其他几篇关于如何让CLR查找不在同一文件夹或可执行文件的任何子文件夹中的程序集的帖子,并且无法让它为我工作。ClassLibrary1.dll是一个未签名的程序集。示例显示:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ClassLibrary1"/>
<codeBase version="1.0.0.0"
href=file:///C:\somepath\subfolder\ClassLibrary1.dll"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration> 我创建了一个控制台应用程序,并将上面的内容与正确的路径放在它的配置文件中,但仍然得到一条消息,指出它找不到ClassLibrary1.dll。我使用的是FUSLOGVW,它甚至没有签入CodeBase元素中提供的文件夹。有没有人知道为什么这个不起作用?
发布于 2012-03-14 00:45:27
来自MSDN
如果程序集具有强名称,则代码库设置可以位于本地intranet或互联网上的任何位置。如果程序集是私有程序集,则代码库设置必须是相对于应用程序目录的路径。
这意味着如果不对程序集进行签名,则该程序集必须位于应用程序文件夹或应用程序文件夹的子文件夹中。如果您希望将应用程序放在c:\Program Files\MyApplication中,而将程序集放在c:\MyAssemblies中,则必须对程序集进行签名。
https://stackoverflow.com/questions/9688269
复制相似问题