System.IO.Packaging

115

Ich habe mein Projekt auf .NET Framework 4.0 eingestellt. Wenn ich hinzufüge System.IO.Packaging, heißt es, dass es nicht existiert. Es wird auch nicht angezeigt, wenn ich versuche, es als Referenz zum Projekt hinzuzufügen.

Wie kann ich System.IO.Packagingmeinem C # -Projekt hinzufügen ?

Erpel
quelle

Antworten:

171

Gemäß einem Benutzerkommentar auf dieser MSDN-Seite müssen Sie einen Verweis auf die WindowsBase .Net-Bibliothek hinzufügen.

Pedro
quelle
20
Sie brauchen nicht einmal einen Benutzerkommentar. Wenn Sie in den Dokumenten nach einer der tatsächlichen Methoden / Objekte / etc. im Namespace sagen alle "Assembly: WindowBase.dll"
dlev
Als ich zu dem Link in der Antwort ging, sah ich nicht, woher ich die WindowsBase.Net-Bibliothek hinzufügen sollte. Ich habe es hinzugefügt und habe jetzt Zugriff auf system.io.packaging. Vielen Dank dafür, aber können Sie erklären, was ich nicht über den Zugriff auf system.io.packaging über die WindowsBase.Net-Bibliothek sehe?
Alan
Die Seite enthielt Benutzerkommentare, in denen WindowsBase erwähnt wurde. Es sieht so aus, als hätte Microsoft Kommentare aus ihren Dokumenten entfernt.
Pedro
81

Für eine C # -Lösung in Visual Studio 2010 mit .NET 4.0:

  1. Klicken Sie im Projektmappen-Explorer Ihres Projekts mit der rechten Maustaste auf Referenzen und wählen Sie im Kontextmenü die Option Referenzen hinzufügen.
  2. Wählen Sie im linken Bereich Baugruppen aus und klicken Sie dann auf die Schaltfläche Durchsuchen neben dem Feld Dateiname im unteren Bereich des Bereichs.
  3. Navigieren Sie zu .NET 4.0-Referenzassemblys und wählen Sie WindowsBase.dll aus . Auf meinem Computer (Windows 7, 64-Bit) lautet der vollständige Pfad beispielsweise:

C: \ Programme (x86) \ Referenzassemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll

Speichern Sie die Lösung (insbesondere, wenn Sie mit MSBuild über die Befehlszeile kompilieren), und Sie sollten nun in der Lage sein, die Anweisung using System.IO.Packaging am Anfang Ihrer CS-Datei hinzuzufügen, ohne dass ein Fehler auftritt.

Steve HHH
quelle
4
Sie müssen nicht zur DLL navigieren, sie ist bereits unter Assemblies> Framework verfügbar.
Altaf Patel
@AltafPatel für mich ist es nicht aufgetaucht, ich musste es durchsuchen. Stellen Sie außerdem sicher, dass Ihr Projekt so kompiliert ist, dass es mit der passenden .NET-Version der referenzierten Datei kompiliert wird (in diesem Fall 4.0).
David Rogers
5

Wir können WindowsBase.dll auch in Dot Net Framework 3.5 hinzufügen. Ich benutze XP-Maschine und Pfad für WindowsBase.dll ist

C: \ Programme \ Referenzassemblies \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ WindowsBase.dll

Ein Beispiel für die Verwendung finden Sie System.IO.packaginghier -

Verwenden von System.IO.Packaging zum Generieren einer ZIP-Datei

Tapash
quelle
4

System.IO.Packagingist ein Namespace, keine Referenz. Die meisten (alle?) Klassen im Namespace, z. B. ZipPackage , werden in bereitgestellt WindowsBase.dll.

Stellen Sie sicher, dass Sie einen Verweis auf haben WindowsBase.dll- wenn Sie dies tun, können Sie einfach hinzufügen: Verwenden Sie System.IO.Packaging;zu Ihren .cs-Dateien, und es wird Ihnen gut gehen.

Beachten Sie, dass Sie dies in der Dokumentation für jede Klasse in MSDN sehen können . Zum Beispiel ZipPackagelistet es in:

Namespace:  System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)
Reed Copsey
quelle
+1 - Ich habe nicht bemerkt, dass einzelne Seiten die zu verwendende Baugruppe notieren. Ich hätte es auf der Haupt-Namespace-Seite erwartet, aber da diese nicht immer übereinstimmen, ist es sinnvoll, sich die Klassen anzusehen, die Sie möglicherweise benötigen.
Pedro
3

Der System.IO.PackagingNamespace wird von bereitgestellt WindowsBase. Wenn Sie eine Referenz hinzufügen, fügen Sie diese WindowsBaseals Referenz hinzu, anstatt zu versuchen, sie zu finden System.IO.Packaging.

Matthew Abbott
quelle
2

System.IO.Packaging v4.0.30319 befindet sich in WindowsBase.dll v4.0.30319

Für Windows 10 könnten Sie vielleicht hier finden

C: \ Windows \ Microsoft.NET \ Assembly \ GAC_MSIL \ WindowsBase \ v4.0_4.0.0.0__31bf3856ad364e35 \

Arnonthawajjana Chainarong
quelle
0

In meinem Fall habe ich einen Ashx-Handler verwendet. Damit dies funktioniert, müssen Sie die Baugruppe zum Projekt und zum Handler hinzufügen:

<%@ WebHandler Language="C#" Class="UploadExcelFile2" %>
<%@ Assembly Name="WindowsBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>

Dies funktionierte schließlich für mich und versuchte mehrmals, WindowsBase als Referenz hinzuzufügen (neu gestartet VS, Computer neu gestartet), aber es funktionierte immer noch nicht, bis ich dies explizit auf meiner Aspx-Seite hinzufügte. Ich benutzte: <%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>als die DLL, auf die ich verwiesen hatte, war Version 4.0.

Lanklaas
quelle