プロジェクトを.NET Framework 4.0に設定しています。 System.IO.Packaging
を追加すると、存在しないと表示されます。また、プロジェクトへの参照として追加しようとしても表示されません。
System.IO.Packaging
をC#プロジェクトに追加するにはどうすればよいですか?
このMSDNページ に関するユーザーのコメントによると、WindowsBase .Netライブラリへの参照を追加する必要があります。
.NET 4.0を使用したVisual Studio 2010のC#ソリューションの場合:
C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\WindowsBase.dll
ソリューションを保存する(特にMSBuildでコマンドラインからコンパイルする場合)、System.IO.Packagingを使用してを追加できるようになります.csファイルの先頭に、エラーが表示されないディレクティブ。
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
は名前空間であり、参照ではありません。 ZipPackage など、名前空間内のクラスのほとんど(すべて?)はWindowsBase.dll
にデプロイされます。
WindowsBase.dll
への参照があることを確認してください。もしあれば、.csファイルにSystem.IO.Packaging;
を使用するだけで問題ありません。
これは MSDNの任意のクラスのドキュメント で確認できます。たとえば、ZipPackage
には、次のものがリストされます。
Namespace: System.IO.Packaging
Assembly: WindowsBase (in WindowsBase.dll)
System.IO.Packaging
名前空間はWindowsBase
によって提供されます。参照を追加するとき、System.IO.Packaging
を見つけようとする代わりに、参照としてWindowsBase
を追加します。
WindowsBase.dllへの参照を追加する必要があります。 System.IO.Packagingはそこにあります。
詳細については、この記事を参照してください。
http://msdn.Microsoft.com/en-us/library/system.io.packaging.package.aspx
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 \
私の場合、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であったためです。