.NET 3.5 SP1 플랫폼으로 C# 프로젝트를 빌드합니다. 내 코드가 컴파일되고 다른 .NET 플랫폼 버전도 컴파일됩니다. 내 코드에서 현재 .NET Framework 버전을 가져와야합니다. 콘솔 출력 (I 레지스트리에서 얻을 설치된 버전에 대한 정보) : 현재 .NET Framework 버전을 얻으려면
Installed .NET Framework versions:
v2.0.50727 2.0.50727.5420 SP2
v3.0 3.0.30729.5420 SP2
v3.5 3.5.30729.5420 SP1
v4.5.1 Client 4.5.50938
v4.5.1 Full 4.5.50938
v4.0 Client 4.0.0.0
***
Current .NET Framework version: 2.0.50727.5477
Press any key for exit...
내가 이해 .NET 3.0 및 3.5는 .NET 2.0을 기반으로하지만, 내가 대신, 현재의 플랫폼의 정확한 버전을 얻을 필요가있다 기본 플랫폼 버전.
- 왜 내가 대신 3.5.30729.5420의 2.0.50727.5477합니다 (
Environment.Version
를 통해) 거죠? - 버전 문자열의 마지막 번호에 .5420 대신에 .55477이있는 이유는 무엇입니까?
- 현재 .NET Framework의 정확한 버전을 얻으려면 어떻게해야합니까?
내 코드는 this article을 기반으로합니다 솔루션의 모든 프로젝트는 .NET 프레임 워크의 올바른 버전을 대상으로하는
static void Main(string[] args) {
NetFrameworkInfo[] frameworks =
ExtendedEnvironment.GetInstalledNetFameworkVersions();
Console.WriteLine("Installed .NET Framework versions:");
foreach (NetFrameworkInfo item in frameworks) {
Console.WriteLine(item);
}
Console.WriteLine("***");
Version version = Environment.Version;
Console.WriteLine("Current .NET Framework version: {0}", version);
Console.WriteLine("Press any key for exit...");
Console.ReadKey();
}
해결할 필요가없는 종류의 문제입니다. 특히 "4.5.1 클라이언트"를 열거하면 존재하지 않습니다. major.minor.build 번호 만 안정적이며 Windows Update를 통해 업데이트 및 보안 패치가 제공되면 수정 번호가 임의로 변경 될 수 있습니다. –
예 : AutoCAD 2009 응용 프로그램은 .Net 3.0을 사용하지만 설치되어있는 경우 .net 3.5 *를 사용할 수도 있습니다. 일부 플러그인은 .Net 3.5 SP1 플랫폼 용으로 컴파일되었습니다. AutoCAD에서 현재 .NET 버전을 확인하고 3.5 SP1 인 경우 추가 플러그인을 다운로드 할 수 있습니다. 3.0에서는 작동하지 않습니다. 그래서 ** 현재 ** .NET 프레임 워크의 정확한 버전을 얻으려면 ** 필요합니다. –
레지스트리가 3.5인지 확인하기 만하면 버전 번호에 전혀 신경 쓰지 않아도됩니다. 알베르토가 어떻게하는지 보여 줬어. –