Visual Studio + Azure - 将输出目录的引用参考部署副本

问题描述:

我的Azure Web项目刚刚开始展示程序集绑定错误 - 无法找到Microsoft.Data.Edm v5.6.2.0。Visual Studio + Azure - 将输出目录的引用参考部署副本

我的项目从nuget包中引用该程序集版本。

什么我发现是这样的:

  • 当我生成项目,在bin \文件夹中包含的程序集的正确版本。
  • 当我将项目部署到Azure模拟器时,bin \中的程序集将被旧版本:v5.6.0.0覆盖。

旧版本的没有被任何在我的解决方案项目的引用,但它是由Microsoft.WindowsAzure.Storage v4.2.1.0,这又是我的项目中引用引用。 (事实上​​,存储组件参考旧版本的三个程序集,我的项目也引用: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文件夹
  • 受影响的引用设置为复制本地
  • 项目的DIFF覆盖文件显示自上次提交以来没有更改
  • 同一解决方案中的Azure辅助角色具有相同的引用集但不受影响
  • 既不重新启动VS也不重新启动重新启动已经修复了这个问题

有没有办法击败Visual Studio?

欢迎疯狂镇:

  1. 注意旧组件所覆盖较新的
  2. c:\> dir /s microsoft.data.edm.dll
  3. 发现,从20份〜,时间戳在C:\Program Files (x86)\Microsoft WCF Data Services\5.6\bin\.NETFramework匹配文件的时间戳 - 我从来没有用过
  4. 删除这些副本并重建
  5. 看到两个t他的三个引用不再覆盖部署,但Microsoft.Data.Services.Client.dll仍然是! - 但又一时间戳的源文件
  6. 查找文件的来源:它在C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.3\ref
  7. 删除和重建 - 没有更多的重写!问题解决了!

我只希望我知道为什么...

+0

我看到完全相同的问题/解决方案。必须有一个编写目标非常非常差的地方。 – RMD 2014-12-01 22:55:04

+0

我还会补充一点,就我而言,我有针对Azure和WCF库的多个SDK版本,并且我必须全部杀死它们。 – RMD 2014-12-04 21:32:06