Dosya veya derleme 'Microsoft.Build.Framework' (VS 2017) yüklenemedi


87

"Update-database" komutunu çalıştırmayı denediğimde, şu istisnayı alıyorum:

Hedef veritabanına uygulanan SQL ifadelerini görüntülemek için '-Verbose' bayrağını belirtin. System.IO.FileNotFoundException: Dosya veya derleme 'Microsoft.Build.Framework, Sürüm = 15.1.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a' veya bağımlılıklarından biri yüklenemedi. Sistem belirtilen dosyayı bulamıyor. Dosya adı: 'Microsoft.Build.Framework, Version = 15.1.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a'

WRN: Derleme bağlama kaydı KAPALI. Derleme bağlama hatası günlük kaydını etkinleştirmek için, [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) kayıt değerini 1 olarak ayarlayın. Not: Derleme bağlama hatası günlüğü ile ilişkili bazı performans cezaları vardır. Bu özelliği kapatmak için [HKLM \ Software \ Microsoft \ Fusion! EnableLog] kayıt defteri değerini kaldırın.

Dosya veya derleme 'Microsoft.Build.Framework, Version = 15.1.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a' veya bağımlılıklarından biri yüklenemedi. Sistem belirtilen dosyayı bulamıyor .`


1
Almanca'da bu hata mesajında ​​"Die Datei ve Assembly" yazılır: Microsoft.Build.Framework, Version = 15.1.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a "oder eine Abhängigkeit davon wurde nicht gefunden".
Uwe Keim

Yanıtlar:


93

Sanırım seninle aynı sorunu yaşadım. Tüm hata mesajını kaydetmedim, ancak hata mesajım

' Dosya veya derleme yüklenemedi' Microsoft.Build.Framework, Sürüm = 15.1.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a 'veya bağımlılıklarından biri. Sistem belirtilen dosyayı bulamıyor. '

Visual Studio 2017 kullanıyorum ve daha Update-Databasesonra yapmaya çalışıyordum Add-Migration.

Sorunu çözmek için Visual Studio'yu kapatıp yeniden açtım , ardından tekrar çalıştırdım Update-Database.

Bu, sorununuzu çözebilir veya çözmeyebilir, ancak yardımcı olur diye göndereceğimi düşündüm.


6
Evet, "Kapatıp Tekrar Aç" bu durumda çözüme giden doğru yol gibi görünüyor.
Darren Oster

16
Bu işe yarıyor ama ben bunu doğru bir cevap olarak görmüyorum. VS'yi yeniden başlatmak zorunda kalmadan bir kez ve sonsuza kadar düzeltmek istiyorum.
Stanislav

1
Artık bir geçişten sonra her seferinde oluyor ve çalışması için bilgisayarın tam olarak yeniden başlatılmasını gerektiriyor.
OverMars

3
Önerilen tüm çözümleri denedim. Hiçbiri sorunu kalıcı olarak çözemiyor. Visual Studio'yu yeniden başlatmaya devam etmem gerekiyor.
Augusto Barreto


99

Yerel derleme komut dosyamız, NuGet paketlerini geri yüklemek için nuget.exe( 4.7.1.5393) 'nin eski bir sürümünü kullanıyordu . Visual Studio 2019 sürümüne güncelledikten sonra bu hatayı almaya başladık 16.5.0. En son nuget.exe( 5.4.0.6315) sürümüne güncelleme sorunu bizim için çözüldü.

nuget.exeburadan indirilebilir: https://www.nuget.org/downloads .


27
Bir derleme sunucusuna yalnızca VS2019 yüklediğimizde bu zorlukla karşılaştık. Azure DevOps derlememizde bunu düzeltmek için NuGet aracı yükleyici adımında 5.4.0 sürümünü istemek için çalışır.
Elder Smash

3
TeamCity'imde 4.3.0'dan 5.6'ya yükseltildi. Bu benim sorunumu çözdü. Teşekkürler!
Esaith

3
Bu oydu. Çok teşekkürler! 4.4.1'den 5.4.0'a geçti.
DaleyKD

2
@ElderSmash Bir Azure DevOps derlemesi de kullanıyoruz. Bizim durumumuzda sorun , daha yeni bir sürüm belirtilmese bile NuGet yükleyici adımını 'den' NuGetToolInstaller@0e güncelleyerek çözüldü NuGetToolInstaller@1. Yine de, bunun sorunun temel nedenini mi yoksa düzeltmenin mi yerel önbelleği temizlemenin bir yan etkisi olup olmadığından emin değilim.
MarkusM

2
@ElderSmash Bu benim problemim ve çözümümdü, teşekkürler!
Danie

41

Bu sorunun temel nedeni devenv.exe.configdosyadaki göreli yollardan gelir Microsoft.Build.Framework.dll(xml etiketlerine bakın).

Bazı Visual Studio Uzantıları, geçerli dizini değiştiriyor ve göreli yolları geçersiz kılıyor.

Düzeltmek için bu dosyayı C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\dizinde açın. ve tamamının yerini ..\..\MSBuild\15.0\Bin\tarafından C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\.


Ben de aynısını yapmalı mıyım Visual Studio Professioal kullanıyorum. Bu hatayı birden çok kez alıyorum?
Shan

IDE (Topluluk sürümü) altında bir MSBuild klasörüm yoktu, MSBuild'imi "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community" den kopyaladım ve hiçbir şey düzeltmedi.
OverMars

1
2017 Pro kullanıyorum ve bu benim için sorunu çözdü. +1
Tom Wright

2
Bu düzeltmeyi yaptıktan sonra VS2017'yi güncellerseniz, devenv.exe.config'i yeniden güncellemeniz gerekebileceğini unutmayın
Mike Peterson

2
Bu cevap bana ikinci kez yardımcı oldu - VS2017'yi güncelledikten sonra @MikePeterson'ın dediği gibi bunu tekrar yapmanız gerekiyor.
James Monger

35

En azından VS 2017 Professional 15.5.2 ve Entity Framework 6.1.1 çalıştıran ortamımda sorunu tamamen çözen bir geçici çözüm buldum.

Temel olarak, DLL'yi (birkaç ilgili olanla birlikte) GAC'ye (Global Assembly Cache) yükleyin ve sorun ortadan kalkacaktır.

Bu adımları takip et:

  1. Visual Studio 2017'nin tüm çalışan örneklerini kapatın

  2. Visual Studio 2017 Geliştirici Komut İstemi'ni başlatın

  3. Aşağıdaki komutları yazın (Professional'ı Enterprise veya Community sürümünüzle değiştirin veya yolu buna göre ayarlayın):

gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Framework.dll"

gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.dll"

gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Engine.dll"

gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Conversion.Core.dll"

gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Tasks.Core.dll"

gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Utilities.Core.dll"
  1. Visual Studio 2017'yi yeniden başlatın

Temelde, .NET bir DLL dosyasını yüklemeye çalışırken GAC'ye (çoğu durumda) öncelik verilir ve DLL dosyanız artık GAC aracılığıyla çözüleceği için FileNotFoundException ortadan kalkar.

Yine, benim için çalışıyor ve basitçe bir geçici çözüm, temel sorunu çözmeyecek ancak en azından EF geçişleriyle çalışmaya çalışırken VS'yi her zaman yeniden başlatmam gerekmiyor ve bu benim için yeterince iyi.


1
Benim için de çalıştı. Visual Studio 2017 Geliştirici Komut İstemi C: \ ProgramData \ Microsoft \ Windows \ Başlat Menüsü \ Programlar \ Visual Studio 2017 \ Visual Studio Tools'da bulunur ve yönetici olarak çalıştırılmalıdır.
David Létourneau

2
Bilginize - bu, microsoft ürünü yükselttiğinde ve GAC girişleri geçersiz hale geldiğinde sorunlara neden olabilir (daha yeni sürüm veya yol değişikliği .. pro vs kurumsal vb.). Özellikle en son 15.8.0 sürümüne yükseltme ile ilgili bir sorun Projeleriniz yüklenmezse (bu çözümü kullanmış olmanız nedeniyle) buraya bakın: developercommunity.visualstudio.com/content/problem/311136/…
Barry

11

Bu benim için çalıştı - 2020'de başlayan bir destek dışı sorun gibi görünüyor.

In Azure Build Pipeline> NuGet tool installeradım, değişim Version of NuGet.exe to installyeni bir sürüme gibi 5.4.0. Https://dist.nuget.org/tools.json adresindeki sürümleri kontrol edin .

Sorun ortadan kalktı ve şimdi başarıyla oluşturuldu.


Kullanılan nuget versiyonunu güncellemek de benim için sorunu düzeltmenin bir yoluydu.
NP83

7

Eksik dosyam veya montaj sürümüm soruyla farklı.

ASP.net projemi yayınlamaya çalıştığımda bu hatayı alıyorum

Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

Microsoft Build Tools 2015'i yükleyerek sorunu çözdüm

Sanırım sorunumun VS 2015'te VS 2017 ile oluşturulmuş bir proje yayınlamamdan kaynaklandığını düşünüyorum. Umut, aynı sorunu yaşayanlara yardımcı olabilir.


Bu, benim için şirket içi bir TFS'de bir CI derlemesini düzeltmeye yardımcı oldu. Derleme sunucularımdan biri bu araçlara sahip değildi ve çok benzer bir sorunla başarısız olmaya devam etti.
Budhead2004

4

Visual Studio'nun yeniden başlatılmasının işe yaramaması ihtimaline karşı Görev Yöneticisi / İşlem Gezgini'ne gidin ve VBCSCompiler.exe'yi çalıştırın

görüntü açıklamasını buraya girin

Process Explorer kullanarak önerin


1
Bu çözümü deniyorum "Visual Studio'nun yeniden başlatılmasının işe yaramaması durumunda, Görev Yöneticisi / İşlem Gezgini'ne gidin ve VBCSCompiler.exe'ye gidin" ve iyi çalışıyor.
Mohammad Cihad Helal


2

Benim durumumda, bir şey (belki bir NuGet-Update) web.config-Dosyasına bir AssemblyBinding ekledi:

<dependentAssembly>
    <assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-15.1.0.0" newVersion="15.1.0.0" />
</dependentAssembly>

Bağımlı Assemby-Entry'yi kaldırdıktan sonra, Projeyi tekrar yayınlayabilirim.


2

Bu benim için çalıştı: Hata, nuget geri yükleme komutunu çalıştırdığımda ortaya çıkıyor. Nuget sürüm 4.6.2. Bu sorunu çözmenin iki yolu var.

Nuget 4.8.2 ve üstünü kullanın. gacutil / i "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Current \ Bin \ Microsoft.Build.Framework.dll


1

Bu sorun vardı ve işte yapmamız gereken şey:

Sorun şu ki ,] (IDbCommandInterceptor)adı verilen yapılandırılmış bir veritabanı komut engelleyicimiz vardı HttpRuntime.Cache["somekey"ve bu nedenle geçiş komutları bir nedenle çalıştırılamadı. Bu bağımlılığı kaldırdıktan sonra, tüm komutlar mükemmel çalıştı. Belki HttpRuntimeBuild Framework dll'yi bulamadınız mı?

Bu nedenle , taşıma komutları benzer bir sorununuz olup olmadığını görmek için başarısız olduğunda tüm çağrı yığınını kontrol edin .


Çok ilginç, yığın izlemem HttpContext.Current kullanan bir yönteme bir çağrı içeriyordu. Bunu kaldırmak sorunu ortadan kaldırdı.
Timores

0

MacOS'ta XCode / Mono bileşenlerini güncellediğimde de aynı sorunla karşılaştım.

Çözüm, Mac için Visual Studio'yu en son sürüme güncellemektir.

Bu sorunun, yeni XCode / Mono sürümüyle birlikte yüklenen .NET Core 3.0 paketinden yeni MSBuild araçlarının kullanılmasına neden olduğunu düşünüyorum.


0

Zaten gönderenlere teşekkürler. Durumum yukarıdakilerin bir kombinasyonu ile çözüldü. Visual Studio: 2015, 2017, 2019'un birkaç sürümüne sahiptim. Bir noktada MSBUILD sürümü 15.1'den 15.9'a çıktı ve bu sorunu C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe.configdosyayı 15.9 kitaplığına işaret edecek şekilde güncelleyerek çözdüm. İşte girişlerden birine bir örnek:

<dependentAssembly>
      <assemblyIdentity name="Microsoft.Build.Utilities.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
      <bindingRedirect oldVersion="2.0.0.0-99.0.0.0" newVersion="15.9.0.0"/>
      <codeBase version="15.9.0.0" href="..\..\MSBuild\15.0\Bin\Microsoft.Build.Utilities.Core.dll" />
</dependentAssembly>

2
örneğiniz kaybolmuş görünüyor.
Jammer

0

Visual Studio 2019 Community sürümünü kullanma. Diğer çözümleri çok şanssız denedim, ancak NuGet önbelleğini temizledikten sonra sorun çözülmüş görünüyordu. görüntü açıklamasını buraya girin


0

Yukarıdaki yöntemlerin tümünü ve daha fazlasını denedikten sonra - WCF uygulama hala benim için başarısız oldu. Hata: Could not load file or assembly 'Microsoft.Build.Framework, Version=15.1.0.0..

not: VS, PC'yi yeniden başlatmayı, işlemleri sonlandırmayı, VS önbelleklerini, nuget önbelleklerini, obj, bin, .vs, paket klasörlerini temizlemeyi denedi

Benim için işe yarayan şey, projelerin *.csproj.userdosyasını kaldırmaktı .. Görünüşe göre içinde bazı eski yapılandırmalar vardı. Anlamaya çalışırken 4 saat kaybettim ..


0

Yeniden başlattım, ardından çalıştırdığım yerel web hizmetinin o bağlantı noktasını alan başka bir işlem tarafından engellendiğini gördüm. İşlemi kontrol ettim ve işlemi TCPView kullanarak sonlandırdım ve hepsi yeniden çalışmaya başladı gibi görünüyordu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.