[英]Loading an .NET Standard assembly which references a nuget dependency at runtime?
[英].NET How to find which assembly references which
我们有相当老的项目。 主机(控制台或Windows服务)在其中加载一堆“ dll”插件。其中一些来自nuget,一些来自3d party发行版,一些在其他解决方案中编译并手动复制等。
几乎有一百个..和做这件事的那个家伙几年前离开了..
最近我得到了System.IO.FileLoadException, the infamous error 0x80131040
。 其中一个dll试图加载另一个dll的错误版本。.我花了几个小时才找到它是哪个程序集。
我启用了Fusion日志,但所有信息都告诉我-它正在寻找哪个版本的dll,以及它找到了哪个版本。
没有有关哪个dll实际引用错误的dll的信息。
它只会打印主机名,即console.exe, 而不打印引用的dll名称 。
我可能会用Reflector来查找引用中的全部内容。或编写一个快速应用程序以加载所有程序集并尝试恢复其元数据..但这将需要几个小时
有谁知道一种更快的方法来查找哪个dll通过名称引用特定的dll?
System.IO.FileLoadException为缺少的程序集提供PublicKeyToken。 只需进入项目的bin文件夹并搜索包含等于公钥令牌的文本的dll。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.