Question

Je développe actuellement une application pour le profil client .NET 4, car c'est la version qui sera présente sur la plupart des ordinateurs domestiques via Windows Update.

Cependant, je ne peux pas ajouter de référence à System.Web.dll Comme il n'existe pas dans cette version - que dois-je faire?

Est-ce une bonne idée de déployer System.web.dll avec mon application, ou cela ne fonctionnera-t-il pas? J'ai vraiment besoin de connexions HTTP et de tout, donc je ne peux pas modifier mon application en tant que solution de contournement. Cibler mon application sur .NET 4 (pas de profil client) peut-être une possibilité ou cela ne fonctionnera-t-il tout simplement pas sur les ordinateurs avec uniquement le profil client?

Était-ce utile?

La solution

Profil client net 4, car c'est la version qui sera présente sur la plupart des ordinateurs domestiques via Windows Update

Pas vraiment. .NET 4 (profil client ou non) n'est actuellement pas présent sur aucune installation avant la fenêtre 10 par défaut. Par exemple, Windows 7 est livré avec .NET 3.5 SP1, pas .NET 4.0. Il peut y avoir une mise à jour Windows, mais elle est facultative.

Par conséquent, vous pourriez aussi bien cibler le cadre .NET 4 complet.

Le lien entre les systèmes d'exploitation et les versions .NET Framework peuvent être trouvées ici. Les MOKMARKS indiquent qu'une version est disponible dans la boîte, plus le signe signifie qu'il peut être installé.

Notez également que 4.5, 4.6 et 4.6.1 sont tous des mises à jour sur place, ce qui signifie qu'un système avec l'un d'eux est également considéré comme ayant 4.0.

Autres conseils

Si vous ciblez le profil client .net 4.0 et non .NET 4.0, vous devez l'ajouter en tant que prérequis. Cela permettra de l'installer lorsque vous installez votre application.

Vous pouvez toujours utiliser Sockets Si vous exécutez le profil client .NET 4.0, ils sont situés dans System.Net. Tu seulement vouloir System.Web Lorsque la suivante s'applique:

Le System.Web Namespace fournit des classes et des interfaces qui permettent la communication du navigateur-serveur. Cet espace de noms comprend la classe HTTPRequest, qui fournit des informations détaillées sur la demande HTTP actuelle; la classe HTTPResponse, qui gère la sortie HTTP au client; et la classe HTTPServerutility, qui donne accès aux utilitaires et processus côté serveur. System.Web comprend également des classes de manipulation des cookies, du transfert de fichiers, des informations d'exception et du contrôle du cache de sortie.

Si vous souhaitez simplement utiliser le HTTPWeBRequest, il est disponible dans le profil client pour .NET 4.

Voici un exemple que vous pouvez essayer, créez simplement une nouvelle application de console en utilisant le profil client .NET 4 et collez-le dans 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();
        }
    }
}

Vous avez posé des questions sur HTTPCOOKIECOllection dans l'un de vos commentaires. Il semble que HTTPWeBRequest utilise un CookieContainer pour stocker les cookies.

Même si vous déployez la copie du System.Web.dll au client qui ne résoudra pas le problème. Et le problème est: vous ne pouvez pas créer un lien vers les assemblages compilés pour le profil .NET 4 (pas le client) de l'assembly qui compilé pour le profil client .NET 4. La seule solution consiste à cibler votre assemblage sur le profil Not Client.

La Page MSDN à propos du profil client .NET Framework.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top