.NET Winforms uygulamasına veya Konsol Uygulamasına sahip olduğumuzu düşünün. WinForm veya Konsol Uygulaması başlatılana kadar adım adım ne olacağını bana söyleyebilir misiniz? Ben iç içe biliyorum - EXE nasıl Framework ile iletişim kuracak, nasıl CLR rolünü, ne zaman uygulama başlatılırken istisna durumunda olur.etc ...Kullanıcı .NET derlemesini (EXE) tıkladığında ne olur?
cevap
zaman sizi çift Bir .net .exe montaj tıklayın:
- Windows' PE yükleyici tekmeler
- içinde bunu yürütülebilir yönetilen bir yürütülebilir olduğunu algılar Windows> = Windows XP üzerinde konum ve iletecek olursa .net mscoree.dll'de _CoreExeMain (yönetilen bir .dll dosyasını çift tıklattıysanız _CoreDllMain) 'ı arayarak. Kullanılacak çalışma zamanını bilmek için montaj yapılandırma dosyasını kullanabilir.
- Windows < Windows XP kullanıyorsanız, .exe dosyası, mscoree.dll dosyasının _CoreExeMain veya _CoreDllMain dosyasına atlayacak küçük bir yerel parça kodu içeriyor.
- Daha sonra, mscoree.dll, genel yapılandırmaya, derleme yapılandırma dosyasına ve neyin yapılmadığına bağlı olarak .net çalışma zamanını başlatır.
- Sonra bir .exe ise, JIT giriş noktası yöntemini derler ve yürütmeye başlar.
Bu harika. Cevabınız için teşekkürler Jb Evain! – Sathish
Muhtemelen şöyle bir şey istiyor: Microsoft. internals
Ya da beri
henüz piyasaya değil: Esansiyel NET, Cilt I: Ortak dil çalışma zamanıhttp://www.amazon.co.uk/Essential-NET-Microsoft-Development-Paperback/dp/0201734117
Teşekkür ederim ho. Kitapları kontrol edeceğim – Sathish
.NET montaj/tıklanan çift ya da başlatılan .exe örneğin MSCoreEE.dll (mscore Yürütme Engine.Dll yalnızca bir örnek için bir makine) ki, işletim sistemi olan, Windows yükleyici yükleyecektir inturn yükleme PE header (Portable çalıştırılabilir) [win32 çalıştırılabilir olması durumunda, PE header, bootstrap'in (statik Main()) adresini içerecektir ve burada ana metodu yükleyecek ve çalıştıracaktır. bootstrap, çalıştırılacak olan C: \ Windows \ System32 \ mscoree.dll dosyasında bulunacak MSCoreEE.Dll adresini içerecek ve .net derlemesi için hedeflenen .Net çalışma zamanını yükleyecektir. Makinede yüklü birden çok .NET sürümü olabilir, ancak belirli çalışma zamanlarını yüklemek için yalnızca bir mscoreee.dll örneği olacaktır.
(derleme kodundaki ek uygulama alanları yaratmadı ise) montaj ilk APP domain kendisi oluşturup yükleyecektir CLR
CLR 3 Uygulama Domains oluşturur içten 1. Sistem Uygulama Alan bir . Shared Paylaşılan ve Varsayılan uygulama etki alanlarını yüklemekle yükümlüdür, ayrıca paylaşılan uygulama etki alanı b'ye mscorelib.dll yükler. Ex İstisnaların 3 ayrı örneğini oluşturun i. Önemli motor istisnası ii. Yığın taşması istisnası iii. Bellek yetersizliği dışında (çok önemli olan CLR, bellek yetersizliği istisnasını önler) geliştiricinin uygulamanın bellekten çıkabileceğini düşündüğü ve istisnayı bir günlük dosyasına yazmak istediğinde, bellek yetersizliği yaratıldığından Bu istisnanın yeni bir örneğini oluşturmak için bellek kalmadı, bu nedenle CLR bu istisnayı uygulamada ileride kullanmak üzere bu istisna önler 2. Paylaşılan Uygulama Alanı a. mscorlib.dll b içerir.Diğer uygulama alanları tarafından kullanılan diğer Yaygın kitaplıklar c. Bununla birlikte, geliştirici, özel Dll'yi CLR'nin dışından kontrol edilemediği için paylaşılan uygulama etki alanına itemez, CLR bu dll'leri barındırır ve CLR'nin kendisi bir geliştirici tarafından nasıl barındırıldığını kontrol edemez, ancak bazı COM arayüzlerini kullanarak mümkün olur geliştiricinin CLR geleneksel 3'ü barındırabileceği yer. Varsayılan Uygulama Alanı a. Tüm kullanıcı ikili dosyaları .exe’nin Dlls'i buraya yüklüyor.
- 1. Kullanıcı uygulamayı güncellediğinde PendingIntents'a ne olur?
- 2. Kullanıcı dışarıdan tıkladığında WPF İletişim Penceresini kapatma
- 3. Çalışma zamanı platformunda bulunmayan bir işlevi DllImport ettiğimde ne olur?
- 4. Uygulama kilitlendiğinde ne olur?
- 5. Bu bildirimde ne olur?
- 6. , kullanıcı-env-derlemesini etkinleştirmek için başarısız olurken, Heroku
- 7. Oluşturulan bir uygulama içinden oluşturulan .NET derlemesini hata ayıklama
- 8. Görev kullanırken ThreadPool dolu/meşgulse ne olur?
- 9. Yenileme jetonu kaybedilirse ne olur?
- 10. Bekleme modunda zamanlayıcıya ne olur?
- 11. Mongodb hafıza dışındayken ne olur?
- 12. pthread_create pthread_create sonra ne olur?
- 13. Bir işlem çatallandığında ne olur?
- 14. Vernik Önbellek dolduğunda ne olur?
- 15. Git düğmesine basarsanız ne olur?
- 16. AIDL dosyaları eşleşmezse ne olur?
- 17. OnPause'dan sonra AsyncTasks'e ne olur?
- 18. Uygulama kaldırıldığında PendingIntents'a ne olur?
- 19. Etkinlik değiştiğinde AsyncTasks'i çalıştırmaya ne olur?
- 20. Kullanıcı HTML'sini temizleyin. Net
- 21. Bir kullanıcı .NET
- 22. Bir açısal js sözü reddedilmez ve başarısız olur ne olur?
- 23. .NET yanlış kullanıcı adı döndürüyor
- 24. Kullanıcı, bir kullanıcı tıkladığında Bootstrap popover'ları (veya genel olarak herhangi bir öğe) nasıl kapatılır?
- 25. C# konsol uygulamasında System.Diagnostics.Process uygulamasını kapatmazsam ne olur?
- 26. Gerçek arama derlemesini belirleme yolu
- 27. sıradan bir exe dosyası ile .net windows uygulamalarından oluşturulan exe dosyası arasındaki fark nedir?
- 28. JavaScript'te, bulunmayan bir özelliği "silmek" durumunda ne olur? Ben bir değişken varsa JavaScript ne olur
- 29. Kullanıcı arayüzü kullanıcı tarafından gösterildiğinde ne yapılıyor?
- 30. Django - İşlenmemiş SQL Sorguları - Ne Olur İçinde Ne Var?
Stakoverflow yanıtı olarak mı? Bunun hakkında yüzlerce sayfa uzunluğunda yazılmış kitaplar var;) – TomTom
@TomTom - Bu çok adil değil! ... bunlar kısaltılmış versiyonlar. –
1. Mono'yu indirin. 2. Derleyin. 3. Bir hata ayıklayıcı altında başlatın. 4. Tek adım. 5. 4. adımı tekrarlayın. –