.NET Framework 4客户端配置文件+;System.Web.dll?

.NET Framework 4客户端配置文件+;System.Web.dll?,.net,dll,.net-client-profile,system.web,.net,Dll,.net Client Profile,System.web,我目前正在为.NET4客户端配置文件开发一个应用程序,因为这个版本将通过Windows Update出现在大多数家用计算机上 但是,我无法添加对System.Web.dll的引用,因为它在此版本中不存在-我应该怎么做 将System.Web.dll与我的应用程序一起部署是一个好主意,还是不起作用?我真的需要HTTP连接和所有连接,所以我不能修改我的应用程序作为解决办法。是否将我的应用程序定位到.NET 4(无客户端配置文件)可能是一种可能性,或者仅在具有客户端配置文件的计算机上不起作用?如果您的

我目前正在为.NET4客户端配置文件开发一个应用程序,因为这个版本将通过Windows Update出现在大多数家用计算机上

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


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

如果您的目标是.NET 4.0而不是.NET 4.0客户端配置文件,则应将其添加为一个目标。这将允许在安装应用程序时安装它

如果运行.NET 4.0客户端配置文件,您仍然可以使用,它们位于
System.NET
中。只有在下列情况下,您才需要
System.Web

Web命名空间提供 支持 浏览器服务器通信。这 命名空间包括HttpRequest 类,它提供了广泛的 有关当前HTTP的信息 要求HttpResponse类 管理到客户端的HTTP输出;和 HttpServerUtility类 提供对服务器端的访问 实用程序和流程。系统.Web 还包括cookie类 操作、文件传输、异常 信息和输出缓存控制


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

这个

NET 4客户端配置文件,因为这是 将出现在most上的版本 通过Windows Update的家庭计算机

不完全是。默认情况下,任何Windows 10之前的安装中都不存在NET 4(客户端配置文件或非客户端配置文件)。例如,Windows7附带了.NET3.5SP1,而不是.NET4.0。可能有windows更新,但它是可选的

因此,您最好以完整的.NET4框架为目标

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


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

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

下面是一个你可以尝试的例子,只需使用.NET4客户端配置文件创建一个新的控制台应用程序,并将其粘贴到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来存储cookies。

我收到一个错误,指出类型
HttpCookieCollection
无法找到-即使在添加
System.Net.dll
之后也是如此。无论如何,是否可以将
System.Web.dll
与我的应用程序一起部署?它可能还有其他依赖项。将目标框架更改为.NET 4.0(完整)而不是客户端配置文件。您可以在“可选更新”下看到它。这是afaik 4.0客户端配置文件。不要将
System.Web.dll
作为独立文件部署到项目中。要求用户安装完整的.NET Framework。包括在您的安装程序,没有人会在意这一点。