.NET Framework hedefleme hatalarını giderme

Şunlar için geçerlidir: Visual Studio

Bu konuda, başvuru sorunları nedeniyle oluşabilecek MSBuild hataları ve bu hataları nasıl çözebileceğiniz açıklanmaktadır.

Farklı bir .NET sürümünü hedefleyen bir projeye veya derlemeye başvurma

.NET'in farklı sürümlerini hedefleyen projelere veya derlemelere başvuran uygulamalar oluşturabilirsiniz. Örneğin, .NET 6'yı hedefleyen ancak .NET Core 3.1'i hedefleyen bir derlemeye başvuran bir uygulama oluşturabilirsiniz. Ancak, .NET'in önceki bir sürümünü hedefleyen bir projede .NET 6'yı hedefleyen bir projeye veya derlemeye başvuru ayarlayamazsınız. Bu örnekte görebileceğiniz hatanın bir örneği aşağıda verilmişti:

error NU1201: Project ClassLibrary-NET6 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project ClassLibrary-NET6 supports: net6.0 (.NETCoreApp,Version=v6.0)
2>Done building project "ClassLibrary-NET31.csproj" -- FAILED.

Hatayı çözmek için uygulamanızın başvurduğunu projeler veya derlemeler tarafından hedeflenen sürümle uyumlu bir .NET sürümünü hedeflediğinden emin olun.

Projeyi farklı bir .NET sürümüne yeniden hedefleme

Uygulamanız için .NET'in hedef sürümünü değiştirirseniz Visual Studio bazı başvuruları değiştirir, ancak bazı başvuruları el ile güncelleştirmeniz gerekebilir. Örneğin, bir uygulamayı .NET Core 3.1 hedefine değiştirirseniz ve bu uygulamanın .NET 6 kullanan başvuruları, kaynakları veya ayarları varsa, daha önce bahsedilen hatalardan biri oluşabilir.

Visual Studio'da hedef çerçeveyi değiştirmeyi gösteren ekran görüntüsü.

app.config'de başvuruları güncelleştirme

.NET Framework uygulamalarda uygulama ayarlarına geçici bir çözüm bulmak için şu adımları izleyin:

  1. Çözüm Gezgini açın.
  2. Tüm Dosyaları Göster'i seçin ve visual studio'nun XML düzenleyicisinde app.config dosyasını düzenleyin.
  3. Ayarlardaki sürümü uygun .NET sürümüyle eşleşecek şekilde değiştirin. Örneğin, sürüm ayarını 4.0.0.0 yerine 2.0.0.0 olarak değiştirebilirsiniz.

Benzer şekilde, kaynak ekleyen bir uygulama için şu adımları izleyin:

  1. Çözüm Gezgini açın.
  2. Tüm Dosyaları Göster'i seçin.
  3. Projem 'i (Visual Basic) veya Özellikler'i (C#) genişletin ve ardından Visual Studio'nun XML düzenleyicisinde Resources.resx dosyasını düzenleyin.
  4. Sürüm ayarını 4.0.0.0 olan 2.0.0.0 olarak değiştirin.

Kaynakları güncelleştirme

Uygulamanız simgeler, bit eşlemler veya veri bağlantısı dizeleri gibi ayarlar gibi kaynaklara sahipse, Project Tasarım AracıAyarlar sayfasındaki tüm öğeleri kaldırıp gerekli ayarları okuyarak da hatayı çözebilirsiniz.

Bir projeyi farklı bir .NET sürümüne yeniden hedeflediğiniz için başvurular çözümlenmez

Bir projeyi farklı bir .NET sürümüne yeniden hedeflerseniz, başvurularınız bazı durumlarda düzgün çözümlenmeyebilir. Derlemelere yönelik açık tam başvurular genellikle bu soruna neden olur, ancak çözümlenmeyen başvuruları kaldırarak ve sonra bunları projeye geri ekleyerek sorunu çözebilirsiniz. Alternatif olarak, başvuruları değiştirmek için proje dosyasını düzenleyebilirsiniz. İlk olarak, aşağıdaki formun başvurularını kaldırın:

<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

Ardından, bunları basit formla değiştirin:

<Reference Include="System.ServiceModel" />

Not

Projenizi kapatıp yeniden açtığınızda, tüm başvuruların doğru çözümlenmesi için projeyi yeniden oluşturmanız gerekir.

Başvurular