.NET Framework 4-Clientprofil + System.Web.dll?

8

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?

    
pimvdb 12.02.2011, 23:06
quelle

4 Antworten

5
  

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.

    
Wim Coenen 12.02.2011, 23:18
quelle
2

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.

    
Filip Ekberg 12.02.2011 23:08
quelle
2

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.

Die MSDN-Seite zum .NET Framework-Clientprofil .

    
whyleee 12.02.2011 23:16
quelle
2

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.

    
Brian 22.09.2011 16:43
quelle