Pregunta

Actualmente estoy desarrollando una aplicación para .NET 4 Perfil de Cliente, ya que esta es la versión que va a estar presente en la mayoría de las computadoras de la casa a través de Windows Update.

Sin embargo, no se puede agregar una referencia a System.Web.dll como no existe en esta versión - ¿qué debo hacer?

Es una buena idea para implementar System.Web.dll junto con mi aplicación, o no ese trabajo?Realmente necesito de conexiones HTTP y todo, así que no puedo modificar mi solicitud como una solución.Es la orientación de mi aplicación .NET 4 (no perfil de cliente), quizás una posibilidad o voluntad que no sólo el trabajo en equipos con sólo el Perfil de Cliente?

¿Fue útil?

Solución

NET 4 Perfil de Cliente, ya que este es el la versión que va a estar presente en la mayoría de los las computadoras de la casa a través de Windows Update

De verdad que no..NET 4 (perfil de cliente o no), que actualmente no está presente en alguna de las pre-Windows 10 instalación por defecto.Por ejemplo, Windows 7 viene con .NET 3.5 SP1, no .NET 4.0.Puede ser una actualización de windows, pero es opcional.

Por lo tanto, usted podría destino de la totalidad .NET 4 framework.

El vínculo entre los sistemas operativos y .NET framework pueden encontrarse versiones aquí.Las marcas de verificación indican que una versión está disponible fuera de la caja, signo más significa que puede ser instalado.

También tenga en cuenta que el 4.5, 4.6 4.6.1 están todos en el lugar de las actualizaciones, lo que significa que un sistema con ninguna de esas también es considerado como 4.0.

Otros consejos

Si usted está apuntando .NET 4.0 y no .NET 4.0 Client Profile se debe añadir que, como requisito previo.Esto va a permitir que se instala al instalar la aplicación.

Usted todavía puede usar Sockets si ejecuta .NET 4.0 Client Profile, que se encuentra en System.Net.Usted sólo quiero System.Web cuando se aplica lo siguiente:

El Sistema.En la Web de espacio de nombres de suministros las clases e interfaces que permiten a navegador de servidor de comunicación.Este espacio de nombres incluye la HttpRequest clase, que proporciona una amplia información acerca de la actual HTTP solicitud;la clase HttpResponse, que gestiona HTTP de salida para el cliente;y el HttpServerUtility clase, que proporciona acceso a lado del servidor utilidades y procesos.Sistema.Web también incluye clases para la cookie la manipulación, transferencia de archivos, excepción información, y la memoria caché de resultados de control.

Si solo desea utilizar HttpWebRequest, está disponible en el perfil del cliente para .Net 4.

Aquí hay un ejemplo que puede probar: simplemente cree una nueva aplicación de consola usando el perfil de cliente .Net 4 y péguela en 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();
        }
    }
}

Preguntaste sobre HttpCookieCollection en uno de tus comentarios.Parece que HttpWebRequest utiliza un CookieContainer para almacenar las cookies.

Incluso si implementa la copia del System.Web.dll al cliente que no resolverá el problema.Y el problema es:no puede vincular los ensamblados compilados para el perfil de .NET 4 (no el cliente) desde el ensamblado que se compiló para el perfil de cliente .NET 4.La única solución es orientar su montaje al perfil que no es de cliente.

El Página de MSDN sobre el perfil de cliente de .NET Framework.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top