Câu trả lời:
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.
Đối với giải pháp C # trong Visual Studio 2010 với .NET 4.0:
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.
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 -
System.IO.Packaging
là 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)
Không System.IO.Packaging
gian tên được cung cấp bởi WindowsBase
. Khi bạn thêm một tham chiếu, hãy thêm WindowsBase
làm tham chiếu thay vì cố gắng tìm System.IO.Packaging
.
Bạn cần thêm một tham chiếu đến WindowsBase.dll. System.IO.Packaging nằm trong đó.
Xem bài viết này để biết thêm chi tiết:
http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx
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 \
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.