web-gelistirme-sc.com

Hata: log4net derlemesi yüklenemedi

Bu hatayı çözmek için arıyorum: 

Dosya veya derleme yüklenemedi 'log4net, Sürüm = 1.2.10.0, Kültür = nötr, PublicKeyToken = 692fbea5521e1304' veya bağımlılıklarından biri. Sistem belirtilen dosyayı bulamıyor. "Bu hata web.config dosyasında bulunur.

Log4net.dll dosyasını webappimin bin dizinine kopyaladığımda, 

Dosya veya derleme yüklenemedi 'log4net, Sürüm = 1.2.10.0, Kültür = nötr, PublicKeyToken = 692fbea5521e1304' veya bağımlılıklarından biri. Bulunan Meclis'in bildirge tanımı Meclis referansına uymuyor.

Bu hata, web.config dosyasında da oluşur.

Derlemenin doğru şekilde yüklenebilmesi için, dosyayla eşleşecek sürümü ve ortak anahtar belirtecini değiştirmek yeterince kolaydır. Bunu yaptığımda, web sitem mükemmel çalışıyor, reportViewer nesnesinin ne zaman başlatılacağı hariç. Sonra orijinal hatayı web.config'e değil, reportViewer etiketine atar. 

Hipotezim, eğer istenen log4net.dll sürümünü kurarsam, sorunlarım çözülecek. Ama hangi dosyayı ya da nerede bulacağına dair hiçbir fikrim yok. Ben log4net 1.2.10 indirerek ve indirmedeki her dll çalıştırarak bariz kontrol ettim. 

Web sitesinin geliştirme makinemde sorunsuz çalıştığını, ancak sunucumda yayınlanmadığında bahsettiğimi belirtmeliyim. 

Bir Server 2008 R2 işletim sistemi üzerinde .NET 4.0, IIS 7 adlı bir asp.net web sitesi çalıştırıyorum. 64bit için Crystal Reports 13.0.1'i yükledim (makinem 64bit).

Bu sorunu nasıl çözebilirim?

EDIT: @ Kevian'ın cevabına yanıt olarak, web.config dosyamda değişiklik yaptım. Bildiri tanımının derleme başvurusuyla eşleşmediği hatayı hala alıyorum. Bu hatayı atan kod şudur:

Line 33:     <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"   AutoDataBind="true"
Line 34:         BestFitPage="True" ToolPanelView="None" />
13
Brynne

Oyunda burada çözülebilen birkaç sorun var:

  1. Log4net.dll dosyasının 32bit sürümü için genel anahtar belirteci) çakışır ile Crystal Reports tarafından kullanıldı. Bu sorunun olup olmadığını doğrulamak için, tüm .csproj dosyalarınızda " 692fbea5521e1304 " için bir arama yapın - CrystalDecisions VE referanslarını görüyorsanız log4net bu sorunu yaşarsınız.
  2. Log4net.dll dosyasının 32bit sürümü, 64 bit veya AnyCPU mimarisi için derlenmiş resimlerle çakışıyor. Bu probleminiz varsa, aşağıdakine benzeyen referansları bulacaksınız. Uygulama havuzunuzu 32bit olarak çalışacak şekilde yeniden yapılandırarak ve uygulamanın çalışıp çalışmadığını kontrol ederek sorunu doğrulayabilirsiniz - varsa sorun yaşarsınız.
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, 

PublicKeyToken = 692fbea5521e1304, processorArchitecture = x86 ">

64-bit'de bizim için çalışan The Fix, gerçekte yeni bir PublicKeyToken'e sahip olan son log4net.dll dosyasını almaktı, 3. parti bin klasörünüzdeki log4net.dll dosyasını değiştirin, VE log4net.dll referanslarının tümünün değiştirilmesi:

<Reference Include="log4net, Version=1.2.10.0, Culture=neutral,

PublicKeyToken = 1b44e1d426115821 , processorArchitecture = MSIL ">

5
neoscribe

Bunu web.config'inize eklemeyi deneyin. Temelde çalışma zamanını, her iki versiyon için aynı Meclisi yüklemesi için uygun olduğunu söyler.

  <runtime>
        <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="log4net" publicKeyToken="692fbea5521e1304" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-1.2.10.0" newVersion="1.2.10.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

1.2.10.0 dosyasını, bin klasörünüzde bulunan sürümle değiştirmeniz gerekecektir.

1
kay.one

Sorununuz için bu dll'yi referanslardan silmenizi/silmenizi ve yeniden kurmanızı tavsiye ediyorum ve İşte Log4Net'i VS 2013'te nasıl düzgün bir şekilde kuracağınız:

1) NuGet Paketleri Yöneticisi yardımcı programı için nuget.org Paket Kaynaklarınızı şu şekilde açtığınızdan emin olun: Rightclick Project (çözüm değil), ardından sol altta "Ayarlar" ı seçin ve sonra "Paket Yöneticisi" ni seçin Kullanılabilir paket kaynakları altındaki "Paket Kaynakları" nı seçin, "nuget.org" u seçin, ayrıca "Makine genişliğinde paket kaynakları" nı da "Tamam" ı tıklayın.

2) NUGet Paketlerini Yönet'e götürür, ardından soldaki bölmede "Online" seçeneğini seçip Apache log4j'den yerleştirilen "log4net" i arar, sonra onu kurar. Bunu yaptığınızda, projenizdeki Referanslar başlığı altında bulabilirsiniz.

Ayrıca ekran görüntüleri ekledim.

keyfini çıkarın!

 enter image description here

 enter image description here

0
Dung

Makineniz 64bit ise ve Crystal Report 32bit versiyonunu yüklüyorsanız, bu hata size her şeyi beğenecektir. Bu durumda, gerekli tüm montajlar GAC'a düzgün şekilde kaydedilir ancak yine de, "log4net Assembly" yüklenemiyor ... "diyor. Bu hatanın nedeni 64bit bir makinede 32 bitlik bir uygulamayı çalıştırmaya çalışıyor olmanızdır.

Sunucu tarafında raporlama uyguluyorsanız, IIS bu uygulamanın yürütülmesine izin vermez. Bunu çözmek için IIS'de 32bit uygulamayı etkinleştirmeniz gerekir.

Bunun için adımlar:

  1. Uygulamanızı çalıştırdığınız uygulama havuzuna gidin
  2. Sağ tıklayın ve Gelişmiş Ayarlar'a gidin
  3. Burada "32-Bit Uygulamalarını Etkinleştir" seçeneğini bulun ve doğru olarak ayarlayın
  4. Sıfırla IIS (iisreset)
0
Mukul.Ghade

Kodumda bu problem vardı. Birinin kullandığı Projelerden biri Log4Net versiyonunda ihtilaflara sahipti. 12.2.10 kullanıyorlardı ve bende 12.2.13 vardı. Böylece sorunu çözmek için referansımdan kurtuldum ve referanslarını buldum. Bunun yerine kullandım ve mükemmel çalıştı.

Başvuru bulmak için Microsoft Visual Studio'nun Tarayıcı özelliği vardır. Bunu dll almak için kullanabilirsiniz. Dll'yi bulmak için projenizdeki referanslara ve bulmak istediğiniz referansa tıklayabilirsiniz. Bu durumda Log4Net. Bağımlılıkların bir listesini gösterir, diğer log4net seçilen Log4Net'e yakın olmalı ve mevcut seçilen dll referansının yerini gösteren bir metin olmalıdır. Referansı burada bulacaksınız. 

0
Jackstine

MSDOS

-- Create a virtual disk
subst t: C:\Windows\Assembly

-- Delete log4net x64 Assembly
del t:\GAC_64\log4net\1.2.10.0__692fbea5521e1304\log4net.dll

-- remove the virtual disk
subst t: /d
0
KhaledDev