System.IO.Packaging

115

Saya memiliki proyek saya disetel ke .NET Framework 4.0. Ketika saya menambahkan System.IO.Packaging, dikatakan bahwa itu tidak ada. Itu juga tidak muncul ketika saya mencoba menambahkannya sebagai referensi ke proyek.

Bagaimana saya bisa menambahkan System.IO.Packagingke proyek C # saya?

Itik jantan
sumber

Jawaban:

171

Menurut komentar pengguna di halaman MSDN ini , Anda harus menambahkan referensi ke pustaka WindowsBase .Net.

Pedro
sumber
20
Anda bahkan tidak membutuhkan komentar pengguna. Jika Anda melihat dokumen untuk metode / objek / etc yang sebenarnya. di namespace, mereka semua mengatakan "Assembly:
WindowBase.dll
Ketika saya pergi ke tautan di jawaban, saya tidak melihat bagaimana saya bisa menambahkan pustaka WindowsBase.Net. Saya menambahkannya dan sekarang saya memiliki akses ke system.io.packaging. Jadi terima kasih untuk itu, tetapi bisakah Anda menjelaskan apa yang tidak saya lihat tentang mengetahui cara mengakses system.io.packaging melalui pustaka WindowsBase.Net?
Alan
Halaman yang digunakan untuk memiliki komentar pengguna yang menyebutkan WindowsBase. Sepertinya Microsoft menghapus komentar dari dokumen mereka.
Pedro
81

Untuk solusi C # di Visual Studio 2010 dengan .NET 4.0:

  1. Di Solution Explorer proyek Anda, klik kanan pada Referensi dan pilih Tambahkan Referensi dari menu konteks.
  2. Pilih Assemblies di panel kiri, lalu klik tombol Browse di sebelah bidang Nama file di dekat bagian bawah panel.
  3. Jelajahi rakitan referensi .NET 4.0 dan pilih WindowsBase.dll . Misalnya, di komputer saya (Windows 7, 64-bit) jalur lengkapnya adalah:

C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll

Simpan solusinya (terutama jika Anda mengkompilasi dari baris perintah dengan MSBuild) dan Anda sekarang dapat menambahkan direktif menggunakan System.IO.Packaging ke bagian atas file .cs Anda tanpa kesalahan muncul.

Steve HHH
sumber
4
Tidak perlu menelusuri dll, itu sudah tersedia di Assemblies> Framework.
Altaf Patel
@AltafPatel bagi saya tidak muncul, saya harus menjelajahinya. Pastikan juga bahwa proyek Anda disetel untuk dikompilasi dengan versi .NET yang cocok dari file yang direferensikan (dalam hal ini 4.0).
David Rogers
5

Kita dapat menambahkan WindowsBase.dll dalam Dot Net framework 3.5 juga. Saya menggunakan mesin XP dan Path untuk WindowsBase.dll adalah

C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ WindowsBase.dll

Contoh penggunaan System.IO.packagingdiberikan di sini -

Menggunakan System.IO.Packaging untuk menghasilkan file ZIP

Tapash
sumber
4

System.IO.Packagingadalah namespace, bukan referensi. Sebagian besar (semua?) Kelas dalam namespace, seperti ZipPackage , di-deploy di WindowsBase.dll.

Pastikan Anda memiliki referensi ke WindowsBase.dll- jika ya, Anda dapat menambahkan: using System.IO.Packaging;ke file .cs Anda, dan Anda akan baik-baik saja.

Perhatikan bahwa Anda dapat melihat ini di dokumentasi untuk semua kelas di MSDN . Misalnya, di ZipPackage, itu mencantumkan:

Namespace:  System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)
Reed Copsey
sumber
+1 - Saya tidak memperhatikan bahwa setiap halaman mencatat perakitan yang akan digunakan. Saya akan mengharapkannya di halaman namespace utama, tetapi karena itu tidak selalu cocok, masuk akal untuk melihat kelas yang mungkin Anda butuhkan.
Pedro
3

The System.IO.Packagingnamespace disediakan oleh WindowsBase. Saat Anda menambahkan referensi, tambahkan WindowsBasesebagai referensi alih-alih mencoba mencari System.IO.Packaging.

Matthew Abbott
sumber
2

System.IO.Packaging v4.0.30319 ada di WindowsBase.dll v4.0.30319

Untuk windows 10 mungkin bisa anda temukan disini

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

Arnonthawajjana Chainarong
sumber
0

Dalam kasus saya, saya menggunakan penangan ashx. Agar berfungsi, Anda perlu menambahkan assembly ke proyek dan penangan:

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

Ini akhirnya berhasil untuk saya, mencoba beberapa kali untuk menambahkan WindowsBase sebagai referensi (restart VS, restart mesin juga) tetapi tetap tidak berfungsi sampai saya menambahkan ini secara eksplisit di halaman aspx saya. Saya menggunakan: <%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>karena dll yang saya referensikan adalah versi 4.0.

Lanklaas
sumber