Bir C# uygulamasının kendisinden, dotnet'in uygulama tarafından hangi sürümünün kullanıldığını nasıl kontrol edebilirim?dotnet sürümümü belirle
cevap
Environment.Version
kullanın - bu, uygulamayı çalıştıran .NET'in tam sürümünü verir.
Ortak dil çalışma zamanının büyük, küçük, derleme ve düzeltme sayılarını açıklayan bir Sürüm nesnesini alır.
, çerçevenin hangi sürümünü yüklü öğrenmek this SO soru ve cevapları görmek için. Bir ceviz kabuğunda, kayıt defterine girmeniz gerekecektir.
3.5, 3.0 ve 2.0 arasında ayrım yapabilir mi? (çalışma zamanı aynı, 2.0.something) – xanatos
@xanatos - Hayır, yapamaz. Çalışma zamanı sürümünü döndürecektir. Neyin yüklü olduğunu bilmeniz gerekiyorsa, bkz. [This] (http://stackoverflow.com/questions/199080/how-to-detect-what-net-framework-versions-and-service-packs-are-installed) So soru ve cevaplar. – Oded
Sen kullanabilirsiniz:
Environment.Version
.NET çalışma zamanı sürüm numarasını almak için.
bir konsol uygulaması bu sınıf eklemek oluşturma ve bunu
Visual Studio'dausing Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
public class GetDotNetVersion
{
public static void Get45PlusFromRegistry()
{
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
{
if (ndpKey != null && ndpKey.GetValue("Release") != null)
{
Console.WriteLine(".NET Framework Version: " + CheckFor45PlusVersion((int)ndpKey.GetValue("Release")));
}
else
{
Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
}
}
}
// Checking the version using >= will enable forward compatibility.
private static string CheckFor45PlusVersion(int releaseKey)
{
if (releaseKey >= 394802)
return "4.6.2 or later";
if (releaseKey >= 394254)
{
return "4.6.1";
}
if (releaseKey >= 393295)
{
return "4.6";
}
if ((releaseKey >= 379893))
{
return "4.5.2";
}
if ((releaseKey >= 378675))
{
return "4.5.1";
}
if ((releaseKey >= 378389))
{
return "4.5";
}
// This code should never execute.
// that 4.5 or later is installed.
return "No 4.5 or later version detected";
}
}
// Calling the GetDotNetVersion.Get45PlusFromRegistry method produces
// output like the following:
// .NET Framework Version: 4.6.1
}
Bu sorunun, mevcut sorunu düzeltmede OP'ye nasıl yardımcı olduğuyla ilgili bir açıklama ekleyin –
, > Nutget Paketi Yönetimi-> Paket Yöneticisi Konsolu Tip dotnet yılında version Araçlar- gitmek koşmak Ve işte gidiyorsun!
- 1. dotnet Zip
- 2. Geçerli HINSTANCE'ı belirle?
- 3. Görüntüdeki kalıbı belirle
- 4. Android'de ProgressDialog öğesini belirle
- 5. C# Kod boyutunu belirle
- 6. Websocket send() bittiğinde belirle
- 7. Temel URL'yi Belirle
- 8. dotnet 5.4 - System.IO
- 9. sınıflandırma için rasgele ormanı belirle
- 10. Tüm alt öğelerin genişliğini belirle
- 11. İki dikdörtgenin kesişme alanını belirle
- 12. PHP Dizisindeki Boyutların sayısını Belirle
- 13. GWT CellTable - sütun genişliği belirle
- 14. Android çevirici varsayılan metni belirle
- 15. dotnet cli - "tespit paket düşürme"
- 16. Paket sürümü daima dotnet paketi
- 17. SQL Server Sorgulama Boyutları Sonuçları Belirle
- 18. OpenFileDialog. "Dizin Diyaloğunu Belirle" ne dersiniz?
- 19. HTML Chrome Denetimi Resim Boyutlarını Belirle
- 20. Montajda 32/64 bit mimariyi belirle
- 21. C# MVC Başarılı Http Durum Kodunu Belirle
- 22. Swift: applicationDidEnterBackground çağrıldığında Aktif Görünüm Denetleyicisini Belirle
- 23. xtable + knitr sütun genişliğini belirle html
- 24. Gönderme/yenileme sonrasında seçili seçeneği belirle seç
- 25. Tanımlı bir kullanıcı için tüm grupları belirle
- 26. T-SQL'de Saat Dilimi Kaybını Belirle
- 27. javascript Harita nesnesi vs Nesne belirle
- 28. Xunit testlerini "dotnet test" ile nasıl filtrelersiniz?
- 29. Dotnet çekirdek yakalama kapatılması için yakın kapat
- 30. MSDeploy.exe kullanılarak dotnet kodu IIS'ye nasıl dağıtılır
Uygulamanın gerektirdiği en küçük sürümü mi kastediyorsunuz? (Proje dosyasında TargetFrameworkVersion attr) –
Aslında geçerli uygulama çerçevesinin yoluna ihtiyacım var. Uygulamamın mevcut sürümden bazı exe yürütmesi gerekiyor. Yani, eğer uygulamam 2.0 kullanıyorsa, .net 2.0 klasöründen exe seçecek ve eğer 4 kullanıyorsanız, .net 4.0 klasöründen exe seçecektir. – hungryMind