我有一个包含2个项目的C#解决方案:
现在,奇怪的是,如果我在控制台应用程序中没有包含对“Microsoft.IdentityModel.Clients.ActiveDirectory”的nuget引用,则会抛出错误:
[FileLoadException:无法加载文件或程序集'Microsoft.IdentityModel.Clients.ActiveDirectory,Version = 3.10.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)]
但是,当我只是添加该引用时,一切正常。
我很困惑为什么会这样?类库已经有了对包的引用,并且类库是唯一使用该包的类,所以为什么我还要添加对控制台应用程序的引用?
有趣的是,我随后包含了一个WebApp并将所有内容发布到Azure订阅中。 Web应用程序也会出现同样的问题。如果我在Web App中添加对“Microsoft.IdentityModel.Clients.ActiveDirectory”nuget包的引用,一切正常,但是如果我将其删除,则会抛出上述异常。请注意,WebApp不直接使用该包,它只是调用类库(已经有引用并正在使用它)。
有人可以了解这里发生的事情吗?