Ich entwickle gerade eine Anwendung für .NET 4 Client Profile, da dies die Version ist, die auf den meisten Heimcomputern über Windows Update vorhanden sein wird.
Ich kann jedoch keinen Verweis auf System.Web.dll
hinzufügen, da dieser in dieser Version nicht existiert - was soll ich tun?
Ist es eine gute Idee, System.Web.dll zusammen mit meiner Anwendung bereitzustellen, oder wird das nicht funktionieren? Ich brauche wirklich HTTP-Verbindungen und alle, also kann ich meine Anwendung nicht als Workaround ändern. Ist die Ausrichtung auf meine Anwendung auf .NET 4 (kein Client-Profil) vielleicht eine Möglichkeit oder wird das auf Computern mit nur dem Client-Profil einfach nicht funktionieren?
NET 4 Client Profil, wie dies der ist Version, die auf den meisten vorhanden sein wird Heimcomputer über Windows Update
Nicht wirklich. .NET 4 (Clientprofil oder nicht) ist derzeit standardmäßig nicht in einer Installation vor der Installation von Windows 10 vorhanden. Zum Beispiel kommt Windows 7 mit .NET 3.5 SP1 und nicht mit .NET 4.0. Es kann ein Windows-Update geben, aber es ist optional.
Daher können Sie auch das vollständige .NET 4-Framework gezielt einsetzen.
Die Verknüpfung zwischen Betriebssystemen und .NET-Framework-Versionen finden Sie hier . Die Häkchen zeigen an, dass eine Version sofort verfügbar ist, Pluszeichen bedeutet, dass sie installiert werden kann.
Beachten Sie auch, dass es sich bei 4.5, 4.6 und 4.6.1 allesamt um Aktualisierungen handelt, was bedeutet, dass ein System mit diesen auch als 4.0 betrachtet wird.
Wenn Sie auf .NET 4.0 und nicht auf .NET 4.0 Client Profile abzielen, sollten Sie das als Voraussetzung . Dadurch kann es installiert werden, wenn Sie Ihre Anwendung installieren.
Sie können Sockets weiterhin verwenden, wenn Sie das .NET 4.0-Clientprofil ausführen in Code%. Sie möchten nur System.Net
, wenn Folgendes zutrifft:
Der System.Web-Namespace wird bereitgestellt Klassen und Schnittstellen, die dies ermöglichen Browser-Server-Kommunikation. Dies Namespace enthält die HttpRequest Klasse, die umfangreich bietet Informationen über das aktuelle HTTP anfordern; 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 Ausgabe-Cache-Kontrolle.
Auch wenn Sie die Kopie von System.Web.dll
auf dem Client bereitstellen, die das Problem nicht löst. Und das Problem ist: Sie können keine Verbindungen zu den Assemblys herstellen, die für das .NET 4-Profil (nicht für den Client) von der Assembly kompiliert wurden, die für das .NET 4-Clientprofil kompiliert wurde. Die einzige Lösung besteht darin, Ihre Assembly auf das Nicht-Client-Profil auszurichten.
Wenn Sie nur die HttpWebRequest verwenden möchten, ist sie im Client-Profil 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-Client-Profil und fügen Sie diese in Program.cs ...
ein %Vor%Sie haben in einem Ihrer Kommentare nach HttpCookieCollection gefragt. Es scheint, dass HttpWebRequest einen CookieContainer verwendet, um die Cookies zu speichern.
Tags und Links .net dll system.web .net-client-profile