Aracılığıyla paylaş


Fuslogvw.exe (Derleme Bağlama Günlük Görüntüleyicisi)

Derleme Bağlama Günlük Görüntüleyicisi, derleme bağlamalarının ayrıntılarını görüntüler. Bu bilgiler, .NET Framework'ün çalışma zamanında bir derlemeyi neden bulamadığını tanılamanıza yardımcı olur. Bu hatalar genellikle yanlış konuma dağıtılan bir derlemenin, artık geçerli olmayan bir yerel görüntünün veya sürüm sayılarında veya kültürlerinde uyuşmazlığın sonucudur. Ortak dil çalışma zamanının bir derlemeyi bulamaması genellikle uygulamanızda olarak TypeLoadException gösterilir.

Önemli

fuslogvw.exe yönetici ayrıcalıklarıyla çalıştırmanız gerekir.

Bu araç, Visual Studio ile birlikte otomatik olarak yüklenir. Aracı çalıştırmak için Visual Studio Geliştirici Komut İstemi'ni veya yönetici kimlik bilgileriyle Visual Studio Geliştirici PowerShell'i kullanın.

Komut istemine aşağıdaki komutu girin:

fuslogvw

Görüntüleyici, başarısız olan her derleme bağlaması için bir girdi görüntüler. Görüntüleyici her hata için şunları açıklar:

  • bağlamayı başlatan uygulama
  • ad, sürüm, kültür ve ortak anahtar dahil olmak üzere bağlamanın için olduğu derleme
  • hatanın tarihi ve saati

Nasıl Yapılır...

Günlük konumu görünümünü değiştirme

  1. Tüm uygulama türlerinin bağlama hatalarını görüntülemek için Varsayılan seçenek düğmesini seçin. Varsayılan olarak, günlük girdileri wininet önbelleğindeki diskteki kullanıcı başına dizinlerde depolanır.

  2. Belirttiğiniz özel dizinde bağlama hatalarını görüntülemek için Özel seçenek düğmesini seçin. Günlük Ayarları iletişim kutusundaki özel günlük konumunu geçerli bir dizin adı olarak ayarlayarak çalışma zamanının günlükleri depolamasını istediğiniz özel konumu belirtmeniz gerekir. Bu dizin temiz olmalı ve yalnızca çalışma zamanının oluşturduğu dosyaları içermelidir. Günlüğe kaydedilecek bir hata oluşturan bir yürütülebilir dosya içeriyorsa, araç yürütülebilir dosyayla aynı ada sahip bir dizin oluşturmaya çalıştığından hata günlüğe kaydedilmez. Ayrıca, günlük konumundan yürütülebilir dosya çalıştırma girişimi başarısız olur.

    Uyarı

    Varsayılan bağlama konumu, özel bağlama konumuna tercih edilir. Çalışma zamanı varsayılan bağlama konumunu wininet önbelleğinde depolar ve bu nedenle otomatik olarak temizler. Özel bir bağlama konumu belirtirseniz, bu konumu temizlemek sizin sorumluluğundadır.

Belirli bir hatayla ilgili ayrıntıları görüntüleme

  1. Görüntüleyicide istenen girdinin uygulama adını seçin.

  2. Günlüğü Görüntüle düğmesine tıklayın. Alternatif olarak, seçili girdiye çift tıklayabilirsiniz.

    Araç, seçili bağlama hatasıyla ilgili aşağıdaki ayrıntıları görüntüler:

    • Bağlamanın başarısız olmasının "dosya bulunamadı" veya "sürüm uyuşmazlığı" gibi belirli bir nedeni vardır.

    • Bağlamayı başlatan uygulama hakkında adı, uygulamanın kök dizini (AppBase) ve varsa özel arama yolunun açıklaması gibi bilgiler.

    • Aracın aradığı derlemenin kimliği.

    • Uygulanan tüm Uygulama, Yayımcı veya Yönetici sürüm ilkelerinin açıklaması.

    • Derlemenin genel derleme önbelleğinde bulunup bulunmadığı.

    • Tüm yoklama URL'lerinin listesi.

Aşağıdaki örnek günlük girdisi, başarısız derleme bağlaması hakkında ayrıntılı bilgileri gösterir.

*** Assembly Binder Log Entry  (3/5/2007 @ 12:54:20 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\WINNT\Microsoft.NET\Framework\v2.0.50727\fusion.dll
Running under executable  C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\graphicfailtest.exe
--- A detailed error log follows.

=== Pre-bind state information ===
LOG: DisplayName = graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : graphicfailtest, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
===

LOG: Processing DEVPATH.
LOG: DEVPATH is not set. Falling through to regular bind.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.EXE.
LOG: All probing URLs attempted and failed.

Girdileri silme

Günlükten tek bir girdiyi silmek için:

  1. Görüntüleyicide bir girdi seçin.

  2. Girdiyi Sil düğmesine tıklayın.

Günlükten tüm girişleri silmek için:

  • Tümünü Sil düğmesine tıklayın.

Kullanıcı arabirimini yenileme

  • Yenile düğmesine tıklayın. Görüntüleyici, çalışırken yeni günlük girdilerini otomatik olarak algılamaz. Bunları görüntülemek için Yenile düğmesini kullanmanız gerekir.

Günlük ayarlarını değiştirme

Ayarlar düğmesine tıklayarak Günlük Ayarları iletişim kutusunu açın.

Hakkında iletişim kutusunu görüntüleme

Hakkında düğmesine tıklayın.

Yerel görüntüler için bağlama günlükleri

Varsayılan olarak, Fuslogvw.exe normal derleme bağlama isteklerini günlüğe kaydeder. Alternatif olarak, Ngen.exe (Yerel Görüntü Oluşturucu) kullanılarak oluşturulan yerel görüntüler için derleme bağlamalarını günlüğe kaydedebilirsiniz.

Yerel görüntüler için günlük derlemesi bağlamaları

  • Günlük Kategorileri grubunda Yerel Görüntüler seçenek düğmesini seçin.

Aşağıdaki günlükte, uygulama için yerel görüntü oluşturulduğunda var olmayan bir bağımlılığın neden olduğu bir hata gösterilmektedir. Çalışma zamanındaki bağımlılıklar Ngen.exe çalıştırıldığında bağımlılıklardan farklıysa, yerel görüntüye bağlamaya izin verilmez.

*** Assembly Binder Log Entry  (12/8/2006 @ 5:22:07 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  E:\test\App.exe
--- A detailed error log follows.

LOG: Start binding of native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\App.exe.
LOG: Start validating native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency b, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
WRN: Dependency assembly was not found at ngen time, but is found at binding time. Disallow using this native image.
WRN: No matching native image found.
LOG: Bind to native image assembly did not succeed. Use IL image.

Aşağıdaki günlükte, uygulama çalıştırıldığında bilgisayardaki güvenlik ayarları yerel görüntünün oluşturulduğu sırada güvenlik ayarlarından farklı olduğundan oluşan yerel görüntü bağlama hatası gösterilmektedir.

*** Assembly Binder Log Entry  (12/8/2006 @ 5:29:09 PM) ***

The operation failed.
Bind result: hr = 0x80004005. Unspecified error

Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  E:\test\Application101622.exe
--- A detailed error log follows.

LOG: Start binding of native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\Application101622.exe.
LOG: Start validating native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency Dependency101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Dependency evaluation succeeded.
LOG: Validation of dependencies succeeded.
LOG: Start loading all the dependencies into load context.
LOG: Loading of dependencies succeeded.
LOG: Bind to native image succeeded.
Native image has correct version information.
Attempting to use native image E:\Windows\assembly\NativeImages_v2.0.50727_64\Application101622\1ac7fadabec4f72575d807501e9fdc72\Application101622.ni.exe.
Rejecting native image because it failed the security check. The assembly's permissions must have changed since the time it was ngenned, or it is running with a different security context.
Discarding native image.

Günlük Ayarları iletişim kutusu

Aşağıdaki eylemleri gerçekleştirmek için Günlük Ayarları iletişim kutusunu kullanabilirsiniz.

Günlüğü devre dışı bırakmak için

  • Devre dışı bırak seçeneği düğmesini seçin. Bu seçeneğin varsayılan olarak belirlendiğini unutmayın.

Özel durumlarda derleme bağlamalarını günlüğe kaydetmek için

  • Oturum aç özel durum metni seçeneği düğmesini seçin. Özel durum metninde yalnızca en az ayrıntılı füzyon günlüğü bilgileri günlüğe kaydedilir. Tam bilgileri görüntülemek için diğer ayarlardan birini kullanın.

    Etki alanı nötr olarak yüklenen derlemelerle ilgili önemli nota bakın.

Derleme bağlama hatalarını günlüğe kaydetmek için

  • Diske bağlama hatalarını günlüğe kaydet seçenek düğmesini seçin.

    Etki alanı nötr olarak yüklenen derlemelerle ilgili önemli nota bakın.

Tüm derleme bağlamalarını günlüğe kaydetmek için

  • Diske tüm bağlamaları günlüğe kaydet seçeneği düğmesini seçin.

    Etki alanı nötr olarak yüklenen derlemelerle ilgili önemli nota bakın.

Önemli

Bir derleme, örneğin özelliğini LoaderOptimization.MultiDomain veya LoaderOptimization.MultiDomainHostolarak ayarlayarak LoaderOptimization etki alanı nötr olarak yüklendiğinde, günlüğün açılması bazı durumlarda bellek sızıntısına neden olabilir. Bir uygulama etki alanına etki alanı nötr modülü yüklendiğinde ve daha sonra uygulama etki alanı kaldırıldığında günlük girdisi yapıldığında bu durum oluşabilir. İşlem sona erene kadar günlük girdisi serbest bırakılmayabilir. Bazı hata ayıklayıcılar günlüğü otomatik olarak açar.

Özel günlük yolunu etkinleştirmek için

  1. Özel günlük yolunu etkinleştir seçeneği düğmesini seçin.

  2. Özel günlük yolu metin kutusuna yolu girin.

Uyarı

Derleme Bağlama Günlük Görüntüleyicisi (Fuslogvw.exe), bağlama günlüğünü depolamak için internet dosya önbelleğini kullanır. Önbellekte zaman zaman bozulma olması nedeniyle, Derleme Bağlama Günlük Görüntüleyicisi (Fuslogvw.exe) bazen görüntüleme penceresinde yeni bağlama günlüklerini göstermeyi durdurabilir. Bu bozulmanın bir sonucu olarak, .NET bağlama altyapısı (fusion) bağlama günlüğüne yazamaz veya bu günlükten okuyamaz. (Özel bir günlük yolu kullanıyorsanız bu sorunla karşılaşılmaz.) Bozulmayı düzeltmek ve fusion'ın bağlama günlüklerini yeniden göstermesine izin vermek için, İnternet özellikleri altındaki Gözatma geçmişi bölümünden geçici internet dosyalarını silerek İnternet dosya önbelleğini temizleyin.

Yönetilmeyen uygulamanız ve IHostAssemblyStore arabirimlerini uygulayarak IHostAssemblyManager ortak dil çalışma zamanını barındırıyorsa, günlük girdileri wininet önbelleğinde depolanamaz. Bu arabirimleri uygulayan özel konakların günlük girdilerini görüntülemek için alternatif bir günlük yolu belirtmeniz gerekir.

Windows uygulama kapsayıcısında çalışan uygulamalar için günlüğe kaydetmeyi etkinleştirmek için

  1. Önceki yordamda açıklandığı gibi özel bir günlük yolunu etkinleştirin. Varsayılan olarak, Windows uygulama kapsayıcısında çalışan uygulamaların sabit diske erişimi sınırlıdır. Belirttiğiniz dizin, uygulama kapsayıcısı içindeki tüm uygulamalar için okuma/yazma erişimine sahip olur.

  2. Tam günlük kaydını etkinleştir onay kutusunu seçin.

    Uyarı

    Bu kutu yalnızca Windows 8 veya sonraki sürümlerde etkindir.

Ayrıca bakınız