117

我的项目设置为 .NET Framework 4.0。当我添加System.IO.Packaging时,它说它不存在。当我尝试将其添加为项目的引用时,它也不会出现。

如何添加System.IO.Packaging到我的 C# 项目?

4

8 回答 8

173

根据此 MSDN 页面上的用户评论,您必须添加对 WindowsBase .Net 库的引用。

于 2011-08-31T16:37:22.740 回答
82

对于带有 .NET 4.0 的 Visual Studio 2010 中的 C# 解决方案:

  1. 在项目的解决方案资源管理器中,右键单击引用并选择添加引用并从上下文菜单中
  2. 在左侧窗格中选择程序集,然后单击文件名旁边的浏览按钮
  3. 浏览到 .NET 4.0 参考程序集并选择WindowsBase.dll。例如,在我的机器(Windows 7、64 位)上,完整路径为:

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

保存解决方案(特别是如果您使用 MSBuild 从命令行编译),您现在应该能够将using System.IO.Packaging指令添加到 .cs 文件的顶部,而不会出现错误。

于 2011-10-18T22:34:44.597 回答
5

System.IO.Packaging是命名空间,而不是引用。命名空间中的大多数(全部?)类,例如ZipPackage,都部署在WindowsBase.dll.

确保你有一个参考WindowsBase.dll- 如果你这样做,你可以添加: usingSystem.IO.Packaging;到你的 .cs 文件,你会没事的。

请注意,您可以在 MSDN 上任何类的文档中看到这一点。例如,在 中ZipPackage,它列出:

Namespace:  System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)
于 2011-08-31T16:38:50.317 回答
5

我们也可以在 Dot Net framework 3.5 中添加 WindowsBase.dll。我正在使用 XP 机器,WindowsBase.dll 的路径是

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

System.IO.packaging这里给出了使用示例-

使用 System.IO.Packaging 生成 ZIP 文件

于 2012-12-05T06:38:04.220 回答
3

您需要添加对 WindowsBase.dll 的引用。System.IO.Packaging 位于那里。

有关更多详细信息,请参阅这篇文章:

http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx

于 2011-08-31T16:39:56.883 回答
3

System.IO.Packaging命名空间由WindowsBase. 添加引用时,添加WindowsBase为引用而不是尝试查找System.IO.Packaging.

于 2011-08-31T16:39:26.813 回答
2

System.IO.Packaging v4.0.30319 位于 WindowsBase.dll v4.0.30319

对于 Windows 10,也许你可以在这里找到

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

于 2017-09-29T09:34:13.250 回答
0

就我而言,我使用的是 ashx 处理程序。要使其工作,您需要将程序集添加到项目和处理程序中:

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

这终于对我有用,多次尝试添加 WindowsBase 作为参考(重新启动 VS,也重新启动机器),但直到我在我的 aspx 页面中明确添加它之前它仍然无法正常工作。我使用:<%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>因为我引用的 dll 是 4.0 版。

于 2018-02-16T06:10:42.370 回答