回答:
この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フレームワーク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
- 参照する場合は、System.IO.Packaging;
.csファイルにを追加するだけで問題ありません。
これは、MSDNの任意のクラスのドキュメントで確認できます。たとえば、ZipPackage
では次のように表示されます。
Namespace: System.IO.Packaging
Assembly: WindowsBase (in WindowsBase.dll)
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だったからです。