Błąd biblioteki mscorlib.dll

Odpowiedz Nowy wątek
2006-08-28 10:12
Big
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.

Pozostało 580 znaków

2006-08-28 11:01
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


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-08-28 11:15
Big
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.

Pozostało 580 znaków

2006-08-28 11:58
0

A ktora wersje podmieniasz na ktora?

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-08-28 12:20
Big
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.

Pozostało 580 znaków

2006-08-28 13:03
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


You need to learn how to walk
before you can run

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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