.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/ | 小谢的小站

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值