Uygulama başlatma hatalarını giderme
Bu makalede, uygulama başlatma hatalarının bazı yaygın nedenleri ve olası çözümleri açıklanmaktadır. Makinenizde bir .NET yüklemesini kullanan çerçeveye bağımlı uygulamalarla ilgilidir.
Hangi .NET sürümüne ihtiyacınız olduğunu zaten biliyorsanız, .NET indirmelerinden indirebilirsiniz.
.NET yüklemesi bulunamadı
.NET yüklemesi bulunamazsa uygulama aşağıdakine benzer bir iletiyle başlatılamaz:
You must install .NET to run this application.
App: C:\repos\myapp\myapp.exe
Architecture: x64
Host version: 7.0.0
.NET location: Not found
You must install .NET to run this application.
App: /home/user/repos/myapp/myapp
Architecture: x64
Host version: 7.0.0
.NET location: Not found
Bunun nedeni bir paket karışımı olabilir.
Genel yüklemeler şu konuma kaydedilir: /etc/dotnet/install_location
. Daha fazla bilgi için bkz . yükleme konumları.
You must install .NET to run this application.
App: /home/user/repos/myapp/myapp
Architecture: x64
Host version: 7.0.0
.NET location: Not found
Genel yüklemeler şu konuma kaydedilir: /etc/dotnet/install_location
. Daha fazla bilgi için bkz . yükleme konumları.
Hata iletisi .NET'i indirmek için bir bağlantı içerir. Uygun indirme sayfasına ulaşmak için bu bağlantıyı izleyebilirsiniz. .NET indirmelerinden .NET sürümünü (tarafından Host version
belirtilen) de seçebilirsiniz.
Gerekli .NET sürümünün indirme sayfasında, hata iletisinde listelenen mimariyle eşleşen .NET Çalışma Zamanı indirmesini bulun. Ardından bir Yükleyici indirip çalıştırarak yükleyebilirsiniz.
.NET, çeşitli Linux paket yöneticileri aracılığıyla kullanılabilir. Daha fazla bilgi için bkz . Linux'a .NET yükleme. (.NET'in önizleme sürümleri genellikle paket yöneticileri aracılığıyla kullanılamaz.)
gibi dotnet-runtime6
uygun sürüm için .NET Çalışma Zamanı paketini yüklemeniz gerekir.
Alternatif olarak, gerekli .NET sürümünün indirme sayfasında belirtilen mimari için ikili dosyaları indirebilirsiniz.
Gerekli çerçeve bulunamadı
Gerekli bir çerçeve veya uyumlu sürüm bulunamazsa uygulama aşağıdakine benzer bir iletiyle başlatılamaz:
You must install or update .NET to run this application.
App: C:\repos\myapp\myapp.exe
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.15' (x64)
.NET location: C:\Program Files\dotnet\
The following frameworks were found:
6.0.2 at [c:\Program Files\dotnet\shared\Microsoft.NETCore.App]
You must install or update .NET to run this application.
App: /home/user/repos/myapp/myapp
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.15' (x64)
.NET location: /usr/share/dotnet/
The following frameworks were found:
6.0.2 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]
You must install or update .NET to run this application.
App: /home/user/repos/myapp/myapp
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.15' (x64)
.NET location: /usr/local/share/dotnet/
The following frameworks were found:
6.0.2 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Hata, eksik çerçevenin adını, sürümünü ve mimarisini ve yüklenmesi beklenen konumu gösterir. Uygulamayı çalıştırmak için, belirtilen ".NET konumuna" uyumlu bir çalışma zamanı yükleyebilirsiniz. Uygulama yüklediğiniz sürümden daha düşük bir sürümü hedeflediyse ve bunu daha yüksek bir sürümde çalıştırmak istiyorsanız, uygulama için ileri sarma davranışını da yapılandırabilirsiniz.
Uyumlu bir çalışma zamanı yükleme
Hata iletisi eksik çerçeveyi indirmek için bir bağlantı içerir. Uygun indirme sayfasına ulaşmak için bu bağlantıyı izleyebilirsiniz.
Alternatif olarak, .NET indirmeleri sayfasından bir çalışma zamanı indirebilirsiniz. Birden çok .NET çalışma zamanı indirmesi vardır.
Aşağıdaki tabloda her çalışma zamanının içerdiği çerçeveler gösterilmektedir.
Çalışma zamanı indirme | Dahil edilen çerçeveler |
---|---|
ASP.NET Core Çalışma Zamanı | Microsoft.NETCore.App Microsoft.AspNetCore.App |
.NET Desktop Çalışma Zamanı | Microsoft.NETCore.App Microsoft.WindowsDesktop.App |
.NET Çalışma Zamanı | Microsoft.NETCore.App |
Çalışma zamanı indirme | Dahil edilen çerçeveler |
---|---|
ASP.NET Core Çalışma Zamanı | Microsoft.NETCore.App Microsoft.AspNetCore.App |
.NET Çalışma Zamanı | Microsoft.NETCore.App |
Eksik çerçeveyi içeren bir çalışma zamanı indirmesi seçin ve ardından yükleyin.
Gerekli .NET sürümünün indirme sayfasında, hata iletisinde listelenen mimariyle eşleşen çalışma zamanı indirmesini bulun. Büyük olasılıkla bir Yükleyici indirmek istiyorsunuz.
.NET, çeşitli Linux paket yöneticileri aracılığıyla kullanılabilir. Ayrıntılar için bkz . Linux'a .NET yükleme. (.NET'in önizleme sürümleri genellikle paket yöneticileri aracılığıyla kullanılamaz.)
veya dotnet-aspnet6
gibi dotnet-runtime6
uygun sürüm için .NET çalışma zamanı paketini yüklemeniz gerekir.
Alternatif olarak, gerekli .NET sürümünün indirme sayfasında belirtilen mimari için ikili dosyaları indirebilirsiniz.
Çoğu durumda, başlatamayan uygulama böyle bir yükleme kullandığında, hata iletisindeki ".NET konumu" şunu gösterir:
%ProgramFiles%\dotnet
/usr/share/dotnet/
/usr/local/share/dotnet/
Diğer seçenekler
Dikkate alınması gereken başka yükleme ve geçici çözüm seçenekleri vardır.
dotnet-install betiğini çalıştırma
İşletim sisteminiz için dotnet-install betiğini indirin. Betiği, hata iletisindeki bilgilere göre seçeneklerle çalıştırın. dotnet-install betik başvuru sayfası tüm kullanılabilir seçenekleri gösterir.
PowerShell'i başlatın ve çalıştırın:
dotnet-install.ps1 -Architecture <architecture> -InstallDir <directory> -Runtime <runtime> -Version <version>
Örneğin, önceki bölümdeki hata iletisi aşağıdakilere karşılık gelir:
dotnet-install.ps1 -Architecture x64 -InstallDir "C:\Program Files\dotnet\" -Runtime dotnet -Version 5.0.15
Betik çalıştırmanın devre dışı bırakıldığını belirten bir hatayla karşılaşırsanız, betiğin çalışmasına izin vermek için yürütme ilkesini ayarlamanız gerekebilir:
Set-ExecutionPolicy Bypass -Scope Process
Betiği kullanarak yükleme hakkında daha fazla bilgi için bkz . PowerShell otomasyonu ile yükleme.
./dotnet-install.sh --architecture <architecture> --install-dir <directory> --runtime <runtime> --version <version>
Örneğin, önceki bölümdeki hata iletisi aşağıdakilere karşılık gelir:
./dotnet-install.sh --architecture x64 --install-dir /usr/share/dotnet/ --runtime dotnet --version 5.0.15
Betiği kullanarak yükleme hakkında daha fazla bilgi için bkz . Betikli yükleme.
./dotnet-install.sh --architecture <architecture> --install-dir <directory> --runtime <runtime> --version <version>
Örneğin, önceki bölümdeki hata iletisi aşağıdakilere karşılık gelir:
./dotnet-install.sh --architecture x64 --install-dir /usr/local/share/dotnet/ --runtime dotnet --version 5.0.15
Betiği kullanarak yükleme hakkında daha fazla bilgi için bkz . Bash otomasyonu ile yükleme.
İkili dosyaları indirme
İndirme sayfasından .NET ikili arşivini indirebilirsiniz. Çalışma zamanı indirmesinin İkili dosyalar sütunundan gerekli mimariyle eşleşen ikili sürümü indirin. İndirilen arşivi hata iletisinde belirtilen ".NET konumuna" ayıklayın.
El ile yükleme hakkında daha fazla bilgi için bkz . Windows'a .NET yükleme
El ile yükleme hakkında daha fazla bilgi için bkz . Linux'ta .NET yükleme
El ile yükleme hakkında daha fazla bilgi için bkz . macOS'a .NET yükleme
İleri sarma davranışını yapılandırma
Gerekli çerçevenin daha yüksek bir sürümü zaten yüklüyse, uygulamanın ileri sarma davranışını yapılandırarak bu daha yüksek sürümde çalışmasını sağlayabilirsiniz.
Uygulamayı çalıştırırken komut satırı seçeneğini belirtebilir veya ortam değişkeniniDOTNET_ROLL_FORWARD
ayarlayabilirsiniz.--roll-forward
Varsayılan olarak, bir uygulama, uygulamanın hedeflediği ana sürümle eşleşen ancak daha yüksek bir ikincil veya düzeltme eki sürümü kullanabilen bir çerçeve gerektirir. Ancak uygulama geliştiricileri farklı bir davranış belirtmiş olabilir. Daha fazla bilgi için bkz . Çerçeveye bağımlı uygulamalar ileri sarma.
Dekont
Bu seçeneğin kullanılması, uygulamanın tasarlandığı sürümden farklı bir çerçeve sürümünde çalışmasına izin vermesinden dolayı, çerçeve sürümleri arasındaki değişiklikler nedeniyle istenmeyen davranışlara neden olabilir.
Hataya neden olan değişiklikler
.NET 7 ve üzeri için çok düzeyli arama devre dışı bırakıldı
Windows'ta, .NET 7'ye geçmeden önce uygulama birden çok yükleme konumunda çerçeveleri arayabilirdi.
Alt dizinler ile ilgili:
dotnet
ile uygulamayıdotnet
çalıştırırken yürütülebilir dosya.DOTNET_ROOT
ortam değişkeni (ayarlanırsa), uygulamayı yürütülebilir dosyası (apphost
) üzerinden çalıştırırken.
içinde
HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\<arch>\InstallLocation
genel olarak kayıtlı yükleme konumu (ayarlandıysa) .varsayılan yükleme konumu
%ProgramFiles%\dotnet
(veya%ProgramFiles(x86)%\dotnet
64 bit Windows'ta 32 bit işlemler için).
Bu çok düzeyli arama davranışı varsayılan olarak etkinleştirilmiştir ancak ortam değişkeni DOTNET_MULTILEVEL_LOOKUP=0
ayarlanarak devre dışı bırakılabilir.
.NET 7 ve üzerini hedefleyen uygulamalar için çok düzeyli arama tamamen devre dışı bırakılır ve .NET yüklemesinin bulunduğu ilk konum olan tek bir konum aranmaktadır. Bir uygulama üzerinden dotnet
çalıştırıldığında çerçeveler yalnızca ile ilgili alt dizinlerde aranılır dotnet
. Bir uygulama yürütülebilir dosyası ()apphost
üzerinden çalıştırıldığında, çerçeveler yalnızca .NET'in bulunduğu daha önce listelenen konumların ilkinde aranılır.
Daha fazla bilgi için bkz . Çok düzeyli arama devre dışı bırakıldı.
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin