Odpowiedzi:
Zgodnie z komentarzem użytkownika na tej stronie MSDN , musisz dodać odwołanie do biblioteki WindowsBase .Net.
Rozwiązanie C # w programie Visual Studio 2010 z .NET 4.0:
C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll
Zapisz rozwiązanie (zwłaszcza jeśli kompilujesz z wiersza polecenia za pomocą programu MSBuild) i powinieneś teraz móc dodać dyrektywę using System.IO.Packaging na początku pliku .cs bez pojawiania się błędu.
Możemy również dodać WindowsBase.dll w Dot Net Framework 3.5. Używam komputera XP, a ścieżka do pliku WindowsBase.dll to
C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ WindowsBase.dll
Przykład użycia System.IO.packaging
podano tutaj -
System.IO.Packaging
jest przestrzenią nazw, a nie odwołaniem. Większość (wszystkie?) Klas w przestrzeni nazw, takich jak ZipPackage , jest wdrażanych w WindowsBase.dll
.
Upewnij się, że masz odniesienie do WindowsBase.dll
- jeśli tak, możesz po prostu dodać: using System.IO.Packaging;
do swoich plików .cs i wszystko będzie dobrze.
Zauważ, że możesz to zobaczyć w dokumentacji dowolnej klasy w witrynie MSDN . Na przykład w programie ZipPackage
zawiera:
Namespace: System.IO.Packaging
Assembly: WindowsBase (in WindowsBase.dll)
Przestrzeń System.IO.Packaging
nazw jest udostępniana przez WindowsBase
. Dodając odniesienie, dodaj je WindowsBase
jako odniesienie zamiast próbować znaleźć System.IO.Packaging
.
Musisz dodać odwołanie do WindowsBase.dll. Tam znajduje się System.IO.Packaging.
Więcej informacji znajdziesz w tym artykule:
http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx
System.IO.Packaging v4.0.30319 znajduje się w WindowsBase.dll v4.0.30319
W przypadku systemu Windows 10 może znalazłeś się tutaj
C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ WindowsBase \ v4.0_4.0.0.0__31bf3856ad364e35 \
W moim przypadku korzystałem z handlera ashx. Aby to działało, musisz dodać assemble do projektu i handler:
<%@ WebHandler Language="C#" Class="UploadExcelFile2" %>
<%@ Assembly Name="WindowsBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
To w końcu zadziałało dla mnie, wiele razy próbowałem dodać WindowsBase jako odniesienie (zrestartowałem VS, zrestartowałem komputer też), ale nadal nie działało, dopóki nie dodałem tego jawnie na mojej stronie aspx. Użyłem: <%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
jako dll, do którego się odwoływałem, była wersja 4.0.