Pergunta

Atualmente estou desenvolvendo um aplicativo para .NET 4 Perfil do Cliente, como esta é a versão que vai estar presente na maioria dos computadores domésticos através do Windows Update.

No entanto, eu não posso adicionar uma referência para System.Web.dll como não existe nesta versão - o que devo fazer?

É uma boa idéia para implantar System.Web.dll juntamente com a aplicação, ou não funciona?Eu realmente preciso de conexões HTTP e todos, então não posso modificar a minha candidatura como uma solução alternativa.É a segmentação de minha aplicação .NET 4 (sem perfil de cliente), talvez, uma possibilidade ou será que simplesmente não funcionam em computadores com o Perfil do Cliente?

Foi útil?

Solução

.

Perfil do cliente NET 4, como este é o versão que estará presente na maioria Computadores domésticos através do Windows Update

não realmente.O .NET 4 (Perfil do cliente ou não) atualmente não está presente em qualquer instalação pré-Windows 10 por padrão.Por exemplo, o Windows 7 vem com .NET 3.5 SP1, não .NET 4.0.Pode haver uma atualização do Windows, mas é opcional.

Portanto, você também pode segmentar o framework completo.

O link entre os sistemas operacionais e as versões do .NET Framework podem ser encontrados aqui .As marcas de verificação indicam que uma versão está disponível para fora da caixa, mais sinal significa que ele pode ser instalado.

Observe também que 4,5, 4.6 e 4.6.1 são todos atualizações no local, o que significa que um sistema com qualquer um desses também é considerado 4,0.

Outras dicas

Se você estiver segmentando o perfil do cliente .NET 4.0 e não .NET 4.0, você deve adicionar isso como um pré-requisito . Isso permitirá que ele seja instalado quando você instala seu aplicativo.

Ainda pode usar soquetes Se você executar o cliente .NET 4.0 Perfil, eles estão localizados em System.Net. Você apenas deseja System.Web quando o seguinte se aplica:

.

O System.Web namespace fornece Classes e interfaces que permitem comunicação do servidor de navegador. Esta namespace inclui o httprequest classe, que fornece extensa Informações sobre o HTTP atual solicitação; a classe HttPrponse, que gerencia a saída HTTP para o cliente; e a classe Httpserversility, que Fornece acesso ao lado do servidor Utilitários e processos. System.Web. Também inclui classes para cookie Manipulação, transferência de arquivos, exceção informação e controle de cache de saída.

Se você está apenas querendo usar o HttpWebRequest, ele está disponível no perfil do cliente para .Net 4.

Aqui está um exemplo que você pode tentar, basta criar um novo aplicativo de console usando o .Net 4 Perfil do Cliente e cole isto no Programa.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();
        }
    }
}

Você perguntou sobre HttpCookieCollection em um de seus comentários.Parece que HttpWebRequest usa um CookieContainer para armazenar os cookies.

Mesmo se você implantar a cópia do System.Web.dll para o cliente que não vai resolver o problema.E o problema é:você não pode link para a assemblies compilados para .NET 4 perfil (não cliente) a partir do assembly compilado .NET 4 Client profile.A única solução é seu destino de montagem de perfil de cliente.

O Página MSDN sobre .NET Framework Client Profile.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top