.Net Framework Client Profile 和 .Net Framework

本文介绍在使用.NET Framework Client Profile开发WPF应用程序时遇到的System.Web引用问题及其解决方案。通过更改目标框架版本,成功解决了无法引用System.Web的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.NET Framework Client Profile是.NET Framework的裁剪版本。它面向客户端应用程序。它提供 Windows Presentation Foundation (WPF)、Windows 窗体、Windows Communication Foundation (WCF) 和 ClickOnce 功能的简化子集。这可以为面向 .NET Framework Client Profile 的 WPF、Windows 窗体、WCF 和控制台应用程序实现快速部署方案。

参看:http://msdn.microsoft.com/zh-cn/library/cc656912.aspx 

在VS2010 中, 你默认建立的 WPF 程序就是 .Net Framework 4 Client Profile ,而不是 .Net Framework 4。昨天下午到今天早上, 我在为 System.Web 无法引用而苦恼的问题,就是它导致的。

 

VS2010中,我们在项目的属性下,可以看到项目有以下多种 Target framework 属性。

image

我今天碰到的 Sytem.Web 引用问题如下:

在用 VS2010 Beta2 书写一个WPF应用的时候,要使用 System.Web.HttpUtility.UrlEncode() 方法时,发现竟然无法增加对 System.Web 的引用。如下图:

.NET Reference 中没有 System.Web 组件。

image

 

使用 Browse 方式打开指定目录的文件 C:/Windows/Microsoft.NET/Framework/v4.0.21006/System.Web.dll  也不行。

如下图:

 

image

GAC 中也没有 4.0 版本的 System.Web 组件,如下图:

image

强制添加 C:/Windows/Microsoft.NET/Framework/v4.0.21006/System.Web.dll   到GAC 时会报错误:

---------------------------
Cannot Add Assembly
---------------------------
Unable to add the selected assembly.  The assembly must have a strong name (name, version and public key).
---------------------------
确定  
---------------------------

这个文件的信息如下:

image

但是VS2010 Beta2 建立的 Web 项目, 默认就有 System.Web 的引用, 这里没有任何问题,如下图:

image

查看这时候的 System.Web 属性,如下:

image

 

把 C:/Program Files/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.0/System.Web.dll 放入 GAC也 会报错误:

---------------------------
Cannot Add Assembly
---------------------------
Unable to add the selected assembly.  The assembly must have a strong name (name, version and public key).
---------------------------
确定  
---------------------------

WPF程序 单独指向这个文件的引用, 也是跟上面的情况一样。也报错。

上面我碰到的这个问题,只需要简单的把项目的 Target framework  修改为 .Net Framework 4 就搞定了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值