【发布时间】:2013-11-23 15:07:19
【问题描述】:
我创建了一个包含多个项目的 VS2013 解决方案。其中一个项目是面向 .NET 4.5+、Silverlight 5、Windows Store 8+ 和 Windows Phone 8 的可移植类库,该项目包含对随附 Web 应用程序中的 OData 服务的引用。
可移植类库引用 Microsoft.Data.Services.Client.Portable(以及其他),通过 nuget(WCF 数据服务客户端)添加。
然后,我将可移植类库添加到 WPF (.NET 4.5) 应用程序、Windows Store 应用程序和 Windows Phone 应用程序中,并编写了一些非常基本的测试代码来访问该服务。这在 Windows 应用商店和 Windows Phone 中运行良好。
然而,WPF 应用程序不会编译。错误是...
- 已定义类型“System.Data.Services.Client.DataServiceContext” 在未引用的程序集中。您必须添加对 程序集'Microsoft.Data.Services.Client.Portable,版本=5.6.0.0, 文化=中性,PublicKeyToken=31bf3856ad364e35'。
- 类型“System.Data.Services.Client.DataServiceQuery`1”在 未引用的程序集。您必须添加对程序集的引用 'Microsoft.Data.Services.Client.Portable,版本=5.6.0.0, 文化=中性,PublicKeyToken=31bf3856ad364e35'。
问题是,我还通过 nuget 将 WCF 数据服务客户端添加到 WPF 应用程序中,但它没有添加对可移植库 (packages\Microsoft.Data.Services.Client.5.6.0\lib\portable-net45+sl5+wp8+win8\Microsoft.Data.Services.Client.Portable.dll) 的引用,而是添加了对完整框架 4.0 版本的引用( packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll) - 这反过来又导致了我看到的错误。
我在这里做错了什么还是安装包中的错误?请注意,如果我删除有问题的引用并手动添加替代引用,那么一切都很好,所以尽管我有一个解决方法,但我仍然想知道我是否是错误的原因。
【问题讨论】:
标签: wpf nuget wcf-data-services visual-studio-2013