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?
答
欢迎疯狂镇:
- 注意旧组件所覆盖较新的
c:\> dir /s microsoft.data.edm.dll
- 发现,从20份〜,时间戳在
C:\Program Files (x86)\Microsoft WCF Data Services\5.6\bin\.NETFramework
匹配文件的时间戳 - 我从来没有用过 - 删除这些副本并重建
- 看到两个t他的三个引用不再覆盖部署,但Microsoft.Data.Services.Client.dll仍然是! - 但又一时间戳的源文件
- 查找文件的来源:它在
C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.3\ref
- 删除和重建 - 没有更多的重写!问题解决了!
我只希望我知道为什么...
我看到完全相同的问题/解决方案。必须有一个编写目标非常非常差的地方。 – RMD 2014-12-01 22:55:04
我还会补充一点,就我而言,我有针对Azure和WCF库的多个SDK版本,并且我必须全部杀死它们。 – RMD 2014-12-04 21:32:06