Należy wziąć pod uwagę, że mamy aplikację .NET Winforms lub aplikację konsolową. Czy ktoś może mi powiedzieć, co stanie się krok po kroku, dopóki nie zostanie uruchomiona aplikacja WinForm lub konsola. Chciałbym znać wewnętrzne - jak EXE będzie komunikować się z Framework, jaka jest rola CLR, co dzieje się w przypadku wyjątku podczas uruchamiania samego appletit.etc ...Co stanie się, gdy użytkownik kliknie zbiór .NET (EXE)?
Odpowiedz
po dwukrotnym kliknij na .net .exe montażu:
- kopnięć załadunku PE Windows' w
- Jeśli jesteś na Windows> = Windows XP wykryje, że wykonywalny jest zarządzany wykonywalny i przekazuje go do .net, wywołując _CoreExeMain w mscoree.dll (_CoreDllMain, jeśli dwukrotnie klikniesz na zarządzany plik .dll). Może użyć pliku konfiguracyjnego zespołu, aby określić, którego środowiska wykonawczego należy użyć.
- Jeśli używasz Windows < Windows XP, plik .exe zawiera mały kod źródłowy, który przejdzie do _CoreExeMain lub _CoreDllMain mscoree.dll.
- Następnie mscoree.dll inicjuje środowisko wykonawcze .net, w zależności od konfiguracji globalnej, pliku konfiguracji zespołu, a co nie.
- Następnie, jeśli jest to .exe, JIT skompiluje swoją metodę punktu wejścia i zacznie ją wykonywać.
To jest świetne. Dziękuję za odpowiedź Jb Evain! – Sathish
Prawdopodobnie chcesz coś takiego: Microsoft .NET wewnętrzne
A ponieważ nie jest jeszcze wydana: Niezbędny NET, tom I: The Common Language Runtime
http://www.amazon.co.uk/Essential-NET-Microsoft-Development-Paperback/dp/0201734117
Dziękuję ho. Sprawdzę książki – Sathish
MSCoreEE.dll (mscore Wykonanie Engine.Dll tylko jedno wystąpienie na jedno urządzenie) powiedzieć na przykład, gdy zespół .Net/exe jest podwójnym kliknięciu lub uruchomieniu OS będzie ładować ładowarka okna, które będzie inturn ładuje nagłówek PE (przenośny plik wykonywalny) [w przypadku pliku wykonywalnego win32, nagłówek PE będzie zawierał adres bootstrap (statyczny Main()), z którego będzie ładowany i wykonywał główną metodę, gdzie jak w .Net, bootstrap będzie zawierał adres MSCoreEE.Dll, który będzie obecny w C: \ Windows \ System32 \ mscoree.dll, który zostanie wykonany i załaduje środowisko wykonawcze .Net, dla którego przeznaczony był zestaw .net. Na komputerze może być zainstalowanych wiele wersji środowiska .Net, ale będzie tylko jedno wystąpienie pliku mscoreee.dll w celu załadowania określonych środowisk wykonawczych.
CLR stworzy pierwszą domenę samą aplikację i załadować montaż (jeśli zespół nie tworzyć dodatkowych domen App w kodzie)
CLR tworzy 3 Zastosowanie Domeny wewnętrznie 1. Układ App Domain . odpowiada za ładowanie współdzielonych i domyślnych domen aplikacji, ładuje również plik mscorelib.dll do udostępnionej domeny aplikacji b. Utwórz 3 oddzielne instancje wyjątków . Fatalny wyjątek silnika ii. Niepowodzenie przepełnienia stosu iii. Wyjątek braku pamięci (bardzo ważne, że CLR przeciwstawia wyjątek "out of memory" bcose, gdy programista myśli, że aplikacja może wyjść z pamięci i chce zapisać wyjątek do pliku logu, utworzenie wyjątku z pamięci nastąpi, ponieważ wystąpił błąd żadna pamięć nie została pozostawiona do utworzenia nowej instancji tego wyjątku, tak więc CLR uprzedza ten wyjątek do przyszłego użytku w aplikacji 2. Wspólna domena aplikacji a. Zawiera mscorlib.dll b.Inne biblioteki wspólne używane w innych domenach aplikacji c. Jednak programista nie może przesłać niestandardowych bibliotek Dll do udostępnianej domeny aplikacji, ponieważ nie można tego kontrolować poza środowiskiem CLR, w tym środowisku CLR nie można kontrolować tego, w jaki sposób jest on hostowany przez programistę, jednak możliwe jest korzystanie z niektórych interfejsów COM gdzie programista może obsługiwać standard CLR 3. Domyślna domena aplikacji a. Wszystkie pliki binarne użytkownika. EXE, Dlls ładowane tutaj
- 1. Co stanie się, gdy odświeżymy stronę internetową?
- 2. Co się stanie, gdy użytkownik naciśnie przycisk Zatrzymaj w przeglądarce?
- 3. Co stanie się, gdy wątek .NET zgłasza wyjątek?
- 4. Co się stanie, gdy uruchomię alarm dwukrotnie?
- 5. Co się stanie, gdy wygasa profil udostępniania?
- 6. Co się stanie, gdy wpiszesz nieprawidłowe hasło?
- 7. Co się stanie, gdy mistrz Kubernetes zawiedzie?
- 8. Co się stanie, gdy zadzwonię requestAnimationFrame wielokrotnie
- 9. Jak zamknąć modalny JDialog, gdy użytkownik kliknie poza JDialog?
- 10. Uruchamiaj akcję, gdy użytkownik kliknie komórkę w szybkim tempie.
- 11. jQuery. - Wykrywanie, gdy użytkownik kliknie OUT typu wprowadzanego tekstu Pole
- 12. Uruchom inny javascript, gdy użytkownik kliknie "ok" w polu alertu.
- 13. Wprowadź tekst do EditText, który znika, gdy użytkownik go kliknie.
- 14. , jak uniknąć zaznaczenia kropkowaną linią, gdy użytkownik kliknie?
- 15. Dodaj ciąg tekstu w polu wprowadzania, gdy użytkownik kliknie przycisk
- 16. jak pokazać opcje, gdy użytkownik kliknie na UITableViewCellAccessoryDetailDisclosureButton
- 17. Jak uruchomić kod PHP, gdy użytkownik kliknie link?
- 18. Rozszerzenie Chrome: przejdź do adresu URL, gdy użytkownik kliknie ikonę.
- 19. Co się stanie, gdy pojawi się przepełnienie timestampu (rowversion)?
- 20. Co się stanie, gdy uruchomi się program java?
- 21. Co się stanie, gdy skończy się kolumna z automatycznym inkrementowaniem?
- 22. Co się stanie, gdy pliki cookie zostaną wyłączone?
- 23. Jak zatrzymać rzutowanie przeglądarki przesuwające się na górę strony, gdy użytkownik kliknie przycisk radiowy jQueryUI?
- 24. Co się stanie, gdy ustawimy Xmx i Xms równy rozmiar?
- 25. Co stanie się, gdy przepełnienie dostawy RabbitMQ zostanie przekroczone?
- 26. Co stanie się z niezatwierdzoną transakcją, gdy połączenie zostanie zamknięte?
- 27. Co stanie się, gdy konwertujesz podwójne (lub pływające) na ints?
- 28. Android - Co się stanie, gdy wygaśnie klucz podpisu?
- 29. Co się stanie, gdy zostanie przypisany typ zawierający lambdę?
- 30. co się stanie, gdy plik cookie przekroczy maksymalny rozmiar?
Jako odpowiedź napowietrznych? Są na niej napisane książki o setkach stron;) – TomTom
@TomTom - To nie jest sprawiedliwe! ... to są skrócone wersje. –
1. Pobierz Mono. 2. Skompiluj to. 3. Uruchom go pod debuggerem. 4. Pojedynczy krok. 5. Powtórz krok 4. –