我正在使用Visual Studio 2015(Pre),Framework 4.5.2
我有以下项目结构
StorageProject
AnotherProject
以下是 StorageProject
中安装的软件包列表这些都是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文件夹中不 。就我而言,这样就可以了。
现在真正的问题:
为什么来自Microsoft WCF Data Services
的版本最终出现在bin中,而不是引用项目中实际安装的版本?
Microsoft WCF Data Services
来自哪里?我根本不记得安装它,也许它在Visual Studio上有一个版本? (我已安装2012年,2013年和2015年)
我可以卸载吗?我在Windows'中看不到它。控制面板。
答案 0 :(得分:1)
•为什么Microsoft WCF数据服务中的版本最终出现在bin中,而不是引用项目中实际安装的版本?
这可能是由于存储客户端不依赖于特定版本的数据服务客户端。由于特定版本设置为false,因此在编译期间将首先搜索GAC,任何版本都将被视为“可接受”,并且不会导出其他版本。
•Microsoft WCF数据服务来自哪里?我根本不记得安装它,也许它在Visual Studio上有一个版本? (我已安装2012年,2013年和2015年)
由于各种原因,可以安装它。 Azure SDK也包含此功能。因此,如果您曾经安装过Azure SDK,那么可能就是这样。
•我可以卸载吗?我在Windows的控制面板中没有看到它。
看起来这只能通过卸载通过“添加/删除程序”安装程序集的MSI程序包来实现。为此,你必须再次弄清楚哪个装置带来了这个装配,并检查是否需要它。