我正在使用 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
andMicrosoft.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 文件夹中。就我而言,这样就可以了。
现在真正的问题:
为什么它是
Microsoft WCF Data Services
最终在 bin 中的版本,而不是实际安装在引用项目中的版本?从哪里来
Microsoft WCF Data Services
?我根本不记得安装它,也许它带有 Visual Studio 上的一个版本?(我安装了 2012、2013 和 2015)我可以卸载它吗?我在 Windows 的控制面板中没有看到它。