【发布时间】:2019-03-09 23:35:07
【问题描述】:
我有一个解决方案,其中包含一个引用其他几个项目的 Web API 项目。那里还有另一个项目,其中包含一堆 Azure 函数,以及一些旧的已弃用工作角色的项目。
绑定重定向和 Nuget 一直是我存在的祸根。我得到了很多依赖错误,这些错误似乎取决于我在哪个平台上运行我的程序:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies
经过一些研究,我的最佳猜测是 Web API 使用自己的绑定重定向规则加载第一组 DLL,如果另一个项目需要不同绑定重定向指定的不同 DLL,它找不到它并且失败。
我发现我能够通过整合我的所有 nuget 包并使所有绑定重定向与 Web API 的绑定重定向匹配来修复我的项目......但是,现在一切似乎都正常,除了 VSTS 测试,它继续生成 FileNotFoundExceptions DLL。
所以,我不只是要求 SO 为我修复我的项目(因为它太大了会很困难),我更感兴趣的是 什么是大型项目的经验法则,比如我的有一堆依赖问题?例如,所有绑定重定向是否应该相同,或者如果它们不同也可以?我应该以其他方式组织我的依赖项吗?你会怎么做才能解决这个问题?
【问题讨论】:
标签: c# dependencies nuget dependency-management assembly-binding-redirect