【发布时间】:2015-06-10 20:00:05
【问题描述】:
我正在使用 Visual Studio 2015 (Pre),Framework 4.5.2
我有以下项目结构
存储项目
- nuget 包 Microsoft.WidowsAzure.Storage 已安装
- 此 Nuget 包(以及其他)依赖于 Microsoft.Data.OData,它也已安装
另一个项目
- 参考了 StorageProject
- 没有任何 nuget 包或其他引用(框架上的默认引用除外)
这是 StorageProject
中安装的软件包列表- WindowsAzure.Storage 4.3.0
- Microsoft.WindowsAzure.ConfigurationManager 3.1.0
- System.Spatial 4.3.0
- Microsoft.Data.Edm 5.6.4
- Microsoft.Data.OData 5.6.4
- Microsoft.Data.Services.Client 5.6.4
这些都是最新版本的 WindowsAzure.Storage 的所有依赖项。
在解决方案的任何地方都没有安装这些软件包的其他版本。
我会关注Microsoft.Data.OData,但是Microsoft.Data.Edm和Microsoft.Data.Services.Client 5.6.4也会出现同样的问题
在构建 StorageProject 时,这些 dll (5.6.4) 的正确版本最终会在项目的 bin 文件夹中。
但是在构建 AnotherProject 时,bin 文件夹包含 5.6.2 版本的 dll。
现在我整天都在试图弄清楚这些 dll 的来源。
GAC 中有一个 5.0.0.0 版本,我无法卸载。 (gacutil 产生它被某些东西使用)。
我在 C:\ 上进行了文件搜索,发现此 dll 版本所在的唯一位置(在我的项目的 bin 文件夹旁边)位于 C:\Program Files (x86)\Microsoft WCF Data Services\5.6.2。如果我删除(移动)这个文件夹,我的项目会“正常”构建,一切都很好。事实上,在这种情况下,OData 根本没有在 bin 文件夹中。就我而言,这样就可以了。
现在是真正的问题:
为什么最终在 bin 中的是来自
Microsoft WCF Data Services的版本,而不是实际安装在引用项目中的版本?Microsoft WCF Data Services来自哪里?我根本不记得安装它,也许它带有 Visual Studio 上的一个版本? (我安装了 2012、2013 和 2015)我可以卸载它吗?我在 Windows 的控制面板中没有看到它。
【问题讨论】:
标签: visual-studio wcf odata azure-storage dll-reference