我的Azure Web项目突然出现了一个程序集绑定错误——无法找到Microsoft.Data.Edm v5.6.2.0。
我的项目从nuget包引用了该程序集的版本。
我发现的情况是:
- 当我构建项目时,bin\文件夹包含正确版本的程序集。
- 当我将项目部署到Azure模拟器时,bin\中的程序集被覆盖为旧版本:v5.6.0.0。
旧版本未被任何解决方案中的项目引用,但它被Microsoft.WindowsAzure.Storage v4.2.1.0引用,后者又被我的项目引用。
(实际上,Storage程序集引用了我项目也引用的三个较新程序集的旧版本:Microsoft.Data.Edm、Microsoft.Data.OData和Microsoft.Data.Services.Client。在部署时,所有三个较新程序集都被覆盖为旧程序集)。
这种行为突然发生了:我正在进行一些维护迭代,今天下午按下了20次Ctrl+F5,突然看到了这个错误。
- 新版本在Web项目的
bin\
文件夹中被覆盖,但未在[azure project]\csx\Debug\roles\[web project name]\approot\bin
或[azure project]\obj\Debug\[web project name]\bin
文件夹中被覆盖。 - 受影响的引用已设置为本地复制。
- 项目文件的差异显示自上次提交以来没有更改。
- 同一解决方案中的Azure worker角色具有相同的引用集,但不受影响。
- 重启VS或重新启动电脑均未解决问题。
是否有办法让Visual Studio恢复正常?