.NET Framework 4 Client Profile + System.Web.dll?

时间:2011-02-12 23:06:01

标签: .net dll .net-client-profile system.web

我目前正在开发.NET 4 Client Profile的应用程序,因为这是通过Windows Update在大多数家用计算机上出现的版本。

但是,我无法添加对System.Web.dll的引用,因为此版本中不存在 - 我应该怎么做?

将System.Web.dll与我的应用程序一起部署是一个好主意,还是不行?我真的需要HTTP连接和所有,所以我不能修改我的应用程序作为一种解决方法。将我的应用程序定位到.NET 4(没有客户端配置文件)可能是一种可能性,或仅仅在仅具有客户端配置文件的计算机上不起作用?

4 个答案:

答案 0 :(得分:7)

  

NET 4 Client Profile,因为这是   大多数都会出现的版本   家庭计算机通过Windows Update

不是真的。默认情况下,任何Windows 10之前的安装目前都不存在.NET 4(客户端配置文件或非客户端配置文件)。例如,Windows 7附带.NET 3.5 SP1,而不是.NET 4.0。可能有Windows更新,但它是可选的。

因此,您也可以定位完整的.NET 4框架。

可以找到操作系统和.NET框架版本之间的链接here。复选标记表示开箱即用的版本,加号表示可以安装。

另请注意,4.5,4.6和4.6.1都是就地更新,这意味着具有其中任何一个的系统也被认为具有4.0。

答案 1 :(得分:3)

如果您的目标是.NET 4.0而不是.NET 4.0 Client Profile,则应将其添加为prerequisite。这将允许在安装应用程序时安装它。

如果运行.NET 4.0 Client Profile,您仍然可以使用Sockets,它们位于System.Net。当以下情况适用时,需要System.Web

  

System.Web命名空间提供   启用的类和接口   浏览器 - 服务器通信。这个   namespace包含HttpRequest   类,提供广泛的   有关当前HTTP的信息   请求; HttpResponse类,哪个   管理客户端的HTTP输出;和   HttpServerUtility类,其中   提供对服务器端的访问   公用事业和流程。的System.Web   还包括cookie类   操纵,文件传输,异常   信息和输出缓存控制。

答案 2 :(得分:3)

如果您只是想使用HttpWebRequest,它可以在.Net 4的客户端配置文件中找到。

以下是您可以尝试的示例,只需使用.Net 4 Client Profile创建一个新的控制台应用程序并将其粘贴到Program.cs中......

using System;
using System.IO;
using System.Net;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            var request = WebRequest.Create("http://google.com");
            var response = request.GetResponse();
            using (var s = response.GetResponseStream())
            using( var sr = new StreamReader(s))
            {
                Console.Write(sr.ReadToEnd());
            }

            Console.ReadKey();
        }
    }
}

您在其中一条评论中询问了HttpCookieCollection。似乎HttpWebRequest使用CookieContainer来存储cookie。

答案 3 :(得分:2)

即使您将System.Web.dll的副本部署到客户端也无法解决问题。问题是:您无法从为.NET 4 Client配置文件编译的程序集链接到为.NET 4配置文件(而非客户端)编译的程序集。唯一的解决方案是将程序集定位到非客户端配置文件。

MSDN Page about .NET Framework Client Profile