TearSnow Fan


.NET Framework Client Profile 导致的引用失效

当使用Visual Studio 2010创建工程时(已经安装了.Net Framework 3.5 和 .Net Framework 4.0),默认的目标框架是.Net Framework 4 Client Profile,而不是.Net Framework 4。

根据MSDN的说法,.NET Framework 4 Client Profile 是 .NET Framework 4 已针对客户端应用程序进行优化的一个子集。 它提供了适用于大多数客户端应用程序的功能,包括 Windows Presentation Foundation (WPF)、Windows 窗体、Windows Communication Foundation (WCF) 和 ClickOnce 功能。 这使得以 .NET Framework 4 Client Profile 为目标的应用程序的部署速度加快且安装包变小。

但是,如果目标框架设置为.NET Framework Client Profile,是不能够使用其以外的系统程序集的,即使引用了相应的dll文件,也会出现引用失效,在工程的“引用”列表中出现黄色感叹号。

例如,《[C#] 浏览文件夹对话框》一文中需要添加的 System.Design (System.Design.dll) 引用就不在 .NET Framework Client Profile 中。如果项目设置中的“生成框架”选择了 .NET Framework 4 Client Profile,从“引用”-“.NET”中添加类库时无法找到该文件,强行添加 .NET Framework v4.0完整集中的dll文件会在该引用上出现黄色感叹号,也无法使用。解决方法是升级该工程的目标框架为 .NET Framework 4 即可。

事实上,.NET Framework 和 相应版本的.NET Framework Client Profile 的系统程序集位置也是不一样的,以.Net Framework 4.0为例,前者位于C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 文件夹,后者位于C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client 文件夹,大部分类库不能通用。从对象浏览器中可以很清楚地看出。

根据MSDN的说明,从 .NET Framework 4.5 开始,微软不再提供 .NET Framework Client Profile,并且只有完整的可再发行组件包程序可用。

参考资料:

[1] MSDN .NET Framework Client Profile (需要分别查看.NET Framework 3.5/4/4.5三个版本)

 

本文固定链接: http://blog.xieyc.com/net-framework-client-profile-lead-to-a-reference-failure/ | 小谢的小站

该日志由 xieyc 于2013年07月07日发表在 编程 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: .NET Framework Client Profile 导致的引用失效 | 小谢的小站
关键字: ,

目前共有 0 条留言 【 访客:0 条, 博主:0 条 】暂时没有评论, 还不快枪沙发

发表评论

:wink: :neutral: :mad: :twisted: :smile: :shock: :sad: :roll: :oops: :eek: :mrgreen: :lol: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

快捷键:Ctrl+Enter