运行我的 .NET 项目时,出现以下运行时错误:
Could not load file or assembly 'Microsoft.WindowsAzure.ServiceRuntime, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
据我了解,Microsoft.WindowsAzure.ServiceRuntime
这是 GAC 依赖项,在 NuGet 上不可用。
我的 .NET 项目从 Azure SDK 2.5 引用 2.5.0.0 的 ServiceRuntime。异常的堆栈跟踪显示我们的自定义 NuGet 包之一引用了 2.4.0.0。
查看 NuGet 包的依赖项时,它没有显示 ServiceRuntime,我认为这是因为它是 GAC 引用(NuGet 无法解决的问题):
我发现通过添加以下web.config
更改,它现在可以工作:
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.ServiceRuntime" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.0.0" newVersion="2.5.0.0" />
</dependentAssembly>
我认为这只适用于 2.5.0.0 向后兼容 2.4.0.0 规范的情况。
问题:
- 如果它不向后兼容会发生什么?
- 为什么不是
Microsoft.WindowsAzure.ServiceRuntime
NuGet 包?