Frage

Ich entwickle derzeit eine Anwendung für das .NET 4-Clientprofil, da dies die Version ist, die auf den meisten Heimcomputern über Windows Update verfügbar sein wird.

Ich kann jedoch keinen Verweis hinzufügen auf System.Web.dll da es in dieser Version nicht existiert - was soll ich tun?

Ist es eine gute Idee, das System bereitzustellen.Web.dll zusammen mit meiner Anwendung, oder funktioniert das nicht?Ich brauche wirklich HTTP-Verbindungen und alles, daher kann ich meine Anwendung nicht als Problemumgehung ändern.Ist es vielleicht möglich, meine Anwendung auf .NET 4 (kein Clientprofil) auszurichten, oder funktioniert das einfach nicht auf Computern mit nur dem Clientprofil?

War es hilfreich?

Lösung

NET 4 Client-Profil, da dies das ist version, die auf den meisten vorhanden sein wird heimcomputer über Windows Update

Eigentlich nicht..NET 4 (Clientprofil oder nicht) ist derzeit standardmäßig in keiner Installation vor Windows 10 vorhanden.Beispielsweise wird Windows 7 mit .NET 3.5 SP1 geliefert, nicht mit .NET 4.0.Möglicherweise gibt es ein Windows-Update, das jedoch optional ist.

Daher können Sie auch auf das vollständige .NET 4-Framework abzielen.

Die Verknüpfung zwischen Betriebssystemen und .NET Framework-Versionen finden Sie unter hier.Die Häkchen zeigen an, dass eine Version sofort verfügbar ist, das Pluszeichen bedeutet, dass sie installiert werden kann.

Beachten Sie auch, dass 4.5, 4.6 und 4.6.1 alle In-Place-Updates sind, was bedeutet, dass ein System mit einem dieser Updates auch als 4.0 angesehen wird.

Andere Tipps

Wenn Sie auf .NET 4.0 und nicht auf .NET 4.0 Client Profile abzielen, sollten Sie dies als hinzufügen Voraussetzung.Dadurch kann es installiert werden, wenn Sie Ihre Anwendung installieren.

Sie können immer noch verwenden Sockets wenn Sie .NET 4.0 Client Profile ausführen, befinden sie sich in System.Net.Sie nur wollen System.Web wenn Folgendes zutrifft:

System.Web-Namespace-Zubehör klassen und Schnittstellen, die ermöglichen browser-Server-Kommunikation.Dieser der Namespace enthält die HttpRequest klasse, die umfangreiche bietet informationen zum aktuellen HTTP Anfrage;die HttpResponse-Klasse, die verwaltet die HTTP-Ausgabe an den Client;und die HttpServerUtility-Klasse, die bietet Zugriff auf die Serverseite dienstprogramme und Prozesse.System.Web enthält auch Klassen für Cookies manipulation, Dateiübertragung, Ausnahme informationen und Ausgabecache-Steuerung.

Wenn Sie nur die HttpWebRequest verwenden möchten, ist sie im Clientprofil für .Net 4 verfügbar.

Hier ist ein Beispiel, das Sie ausprobieren können: Erstellen Sie einfach eine neue Konsolen-App mit dem .Net 4-Clientprofil und fügen Sie diese in das Programm ein.ks...

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();
        }
    }
}

Sie haben in einem Ihrer Kommentare nach HttpCookieCollection gefragt.Es scheint, dass HttpWebRequest einen CookieContainer verwendet, um die Cookies zu speichern.

Auch wenn Sie die Kopie des bereitstellen System.Web.dll an den Kunden, der das Problem nicht lösen wird.Und das Problem ist:sie können keine Verknüpfung zu den Assemblys herstellen, die für das .NET 4-Profil (nicht für den Client) kompiliert wurden, von der Assembly, die für das .NET 4-Clientprofil kompiliert wurde.Die einzige Lösung besteht darin, Ihre Assembly auf das Nicht-Client-Profil auszurichten.

Der MSDN-Seite zum .NET Framework-Clientprofil.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top