System.IO.Packaging


115

Tôi đã đặt dự án của mình thành .NET Framework 4.0. Khi tôi thêm System.IO.Packaging, nó nói rằng nó không tồn tại. Nó cũng không hiển thị khi tôi cố gắng thêm nó làm tham chiếu đến dự án.

Làm cách nào System.IO.Packagingđể thêm vào dự án C # của tôi?

Câu trả lời:


171

Theo nhận xét của người dùng trên trang MSDN này , bạn phải thêm tham chiếu vào thư viện WindowsBase .Net.


20
Bạn thậm chí không cần một bình luận của người dùng. Nếu bạn xem tài liệu để biết bất kỳ phương thức / đối tượng / v.v. thực tế nào. trong không gian tên, tất cả họ đều nói "hội: WindowBase.dll"
dlev

Khi tôi đi đến liên kết trong câu trả lời, tôi không thấy làm cách nào để biết cách thêm thư viện WindowsBase.Net. Tôi đã thêm nó và bây giờ tôi có quyền truy cập vào system.io.packaging. Vì vậy, cảm ơn vì điều đó, nhưng bạn có thể giải thích những gì tôi chưa hiểu về cách truy cập system.io.packaging thông qua thư viện WindowsBase.Net không?
Alan

Trang từng có nhận xét của người dùng đề cập đến WindowsBase. Có vẻ như Microsoft đã xóa nhận xét khỏi tài liệu của họ.
Pedro

81

Đối với giải pháp C # trong Visual Studio 2010 với .NET 4.0:

  1. Trong Trình khám phá Giải pháp của dự án của bạn, nhấp chuột phải vào Tài liệu tham khảo và chọn Thêm Tài liệu tham khảo từ trình đơn ngữ cảnh.
  2. Chọn Assemblies trong ngăn bên trái, sau đó nhấp vào nút Duyệt bên cạnh trường Tên tệp gần cuối ngăn.
  3. Duyệt đến các hội đồng tham chiếu .NET 4.0 và chọn WindowsBase.dll . Ví dụ: trên máy tính của tôi (Windows 7, 64-bit), đường dẫn hoàn chỉnh là:

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

Lưu giải pháp (đặc biệt nếu bạn đang biên dịch từ dòng lệnh với MSBuild) và bây giờ bạn có thể thêm chỉ thị System.IO.Packaging bằng cách sử dụng vào đầu tệp .cs của bạn mà không xuất hiện lỗi.


4
Không cần phải duyệt đến dll, nó đã có sẵn trong Assemblies> Framework.
Altaf Patel

@AltafPatel đối với tôi nó không hiển thị, tôi phải duyệt đến nó. Đồng thời đảm bảo rằng dự án của bạn được đặt để biên dịch với phiên bản .NET phù hợp của tệp được tham chiếu (trong trường hợp này là 4.0).
David Rogers

5

Chúng ta cũng có thể thêm WindowsBase.dll trong Dot Net framework 3.5. Tôi đang sử dụng máy XP và Path cho WindowsBase.dll là

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

Ví dụ để sử dụng System.IO.packagingđược đưa ra ở đây -

Sử dụng System.IO.Packaging để tạo tệp ZIP


4

System.IO.Packaginglà một không gian tên, không phải là một tham chiếu. Hầu hết (tất cả?) Các lớp trong không gian tên, chẳng hạn như ZipPackage , được triển khai trongWindowsBase.dll .

Đảm bảo rằng bạn có tham chiếu tới WindowsBase.dll- nếu có, bạn chỉ cần thêm: using System.IO.Packaging;vào tệp .cs của mình và bạn sẽ ổn.

Lưu ý rằng bạn có thể thấy điều này trong tài liệu cho bất kỳ lớp nào trên MSDN . Ví dụ, trong ZipPackage, nó liệt kê:

Namespace:  System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)

+1 - Tôi không nhận thấy rằng các trang riêng lẻ ghi chú assembly để sử dụng. Tôi đã mong đợi nó trên trang không gian tên chính, nhưng vì chúng không phải lúc nào cũng khớp nhau, nên thật hợp lý khi xem các lớp bạn có thể cần.
Pedro,

3

Không System.IO.Packaginggian tên được cung cấp bởi WindowsBase. Khi bạn thêm một tham chiếu, hãy thêm WindowsBaselàm tham chiếu thay vì cố gắng tìm System.IO.Packaging.



2

System.IO.Packaging v4.0.30319 nằm trong WindowsBase.dll v4.0.30319

Đối với windows 10, bạn có thể tìm thấy ở đây

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


0

Trong trường hợp của tôi, tôi đang sử dụng trình xử lý ashx. Để nó hoạt động, bạn cần thêm assembly vào dự án và trình xử lý:

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

Điều này cuối cùng đã làm việc cho tôi, đã thử nhiều lần để thêm WindowsBase làm tài liệu tham khảo (đã khởi động lại VS, khởi động lại máy cũng vậy) nhưng nó vẫn không hoạt động cho đến khi tôi thêm điều này một cách rõ ràng vào trang aspx của mình. Tôi đã sử dụng: <%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>vì dll tôi đã tham chiếu là phiên bản 4.0.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.