Błąd biblioteki mscorlib.dll

0

Witam serdecznie,
mam zasadniczy problem przy uruchamianiu aplikacji korzystjącej z BufferedStream, z przestrzeni nazw SYSTEM.IO. otóż kompilator C# w Microsoft Visual 2005 usilnie twierdzi, że takiej nazwy tam nie ma i uniemożliwia tworzenie jakiegokolwiek obiektu tego typu. Znalazłem przyczynę i tkwi ona w bibliotece mscorlib.dll. Aplikacja, którą piszę ma być serwerem http na urządzeniu typu palmtop. Muszę mieć możliwość dostępu do kodu stron na karcie pamięci, a ta biblioteka mi to uniemożliwia. Jeśli ją podmienię na taką zawierającą definicje BufferedStream wtedy automatycznie odcinam sobie drogę do obsługi gniazd, operacji z użyciem protokołu TCP i dostaję odpowiedzi z kompilatora w stylu:

Error 1 'System.Net.Sockets.SocketShutdown' does not contain a definition for 'SdBoth' C:\Visual Studio Projects\DeviceApplication1\DeviceApplication1\Program.cs 36 35 DeviceApplication1

s.Shutdown(SocketShutdown.SdBoth); // linia kodu w której jest błąd 's' jest typu Socket;

Error 3 'System.Net.Sockets.ProtocolType' does not contain a definition for 'ProtTCP' C:\Visual Studio Projects\DeviceApplication1\DeviceApplication1\Program.cs 130 77 DeviceApplication1

Socket listener = new Socket(0, SocketType.SockStream, ProtocolType.ProtTCP);

Czy ktoś zna rozwiązanie takiego problemu ??

Z góry dziękuję za pomoc, Big.

0

Moze po prostu aplikacja typu DeviceApplication nie moze korzystac z System.IO? BIblioteka mscorlib.dll o ile pamietam to glowna biblioteka .net sluzaca za interfejs miedzy systemem a platforma .net. Nie sadze wiec, zeby w niej byl problem :) Wydaje mi sie raczej, ze dostajesz komunikat pochodzacy z tej biblioteki, ze namespace System.IO nie moze zostac odnaleziona (bo np. w tym typie aplikacji nie jest po prostu dostepna).

pozdrawiam
johny

0

Big,
dzięki za odpowiedź johny_bravo. Problem musi tkwić właśnie w mscorlib, gdyż w momencie gdy ją podmienię na inną wersję automatycznie otrzymuję dostęp do BufferedReader w tej samej aplikacji. Przydałaby się biblioteka sprzęgająca obie te wersje.

0

A ktora wersje podmieniasz na ktora?

pozdrawiam
johny

0

Big,
ogólnie w systemie znajdują się 4 wersje tego pliku:

c:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE> rozmiar(207816)
c:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\Debugger\BCL> rozmiar(909768)
c:\Program Files\Microsoft.NET\SDK\CompactFramework\v1.0\WindowsCE> rozmiar(395264)
c:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089>rozmiar(4308992)
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>rozmiar(4308992)

Jeśli podmieniam 4 lub 5 w miejsce 1, problem z BufferedReader'em znika ale pojawiają się inne(patrz 1 post). Być może jest to jakaś drobna pierdoła. Próbowałem tworzyć aplikacje innego typu i niestety problem jest ten sam.

Pozdrawiam Big.

0

To wiele wyjasnia.

pozycja 4 lub 5 to wersja mscorlib dla XP, czyli obsluguje platforme .net dla XP. Wersja 1 to wersja dla Mobile Device, ktora najwyrazniej nie zawiera namespace System.IO, ale obsluguje .net dla urzadzen przenosnych. Innymi slowy nie mozesz uzywac 4 lub 5 przy tworzeniu aplikacji dla urzadzen przenosnych, bo ta biblioteka nie stanowi interfejsu dla tej platformy.

Na pewno powinienes uzywac wersji 1 - pozostaje tylko kwestia w jaki sposob obsluguje sie IO na przenosnych. Ale tego nie wiem.

pozdrawiam
johny

1 użytkowników online, w tym zalogowanych: 0, gości: 1