2017-10-02 12 views
1

잘못된 .NET 4.5올바른 후에 .NET 버전을 설치하라는 메시지를 표시 오류 메시지가 나는 윈도우 폼 프로젝트를 생성 타겟으로

enter image description here

나는하지 않는 시스템에서 exe 파일을 실행하면

enter image description here

내가 닷넷 4.0 설치하고 다시 내가받을 다음과 같은 오류 메시지가 EXE 파일을 실행합니다 : .NET 4.0가 설치되어, 나는 다음과 같은 오류 메시지가

첫 번째 메시지에 필수 .NET 버전이 4.5라고 표시되지 않는 이유는 무엇입니까 ??

+0

다운로드 웹 사이트에서이 .NET Framework 버전은 .NET Framework 3.5 및 이전 버전과 나란히 실행되지만 .NET Framework 4의 현재 위치 업데이트를 수행합니다. – DonBoitnott

+0

신청? 설치 프로젝트 사용 (Visual Studio 설치 프로젝트) 또는 설치 실드 또는 다른 것? 설치 전제 조건에서 4.0을 선택했으며 응용 프로그램이 4.5에서 빌드 된 것으로 보입니까? – Munawar

+0

@Munawar 프로젝트를 배포하지 않습니다. exe 파일은 컴퓨터에서 직접 실행됩니다. – Ala

답변

1

this article에 따르면, 응용 프로그램이 실행되는 .NET 프레임 워크의 버전은 다음과 같은 순서로 결정됩니다

  1. 구성 파일 최신 버전
  2. 을 설치
  3. (.config)
  4. 컴파일 된 버전

기본적으로 Visual Studio에서 대상 프레임 워크를 설정하면 .config 번째 파일이 있습니다. .exe 옆에 배포 할 때 version 및 .NET 4.5 모양이 같은 sku

기본 요소 :이 .config 파일 비주얼 스튜디오는 두 가지 속성이있는 요소 <supportedRuntime> 생성에서

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 

version가 지원되는 CLR의 버전입니다 -하지만 4.0에서 4.7까지의 모든 .NET Framework가 CLR 4.0을 사용하기 때문에 .NET Framework 버전과 반드시 ​​동일하지는 않습니다.
sku (재고 보관 단위)은 응용 프로그램에서 지원하는 .NET Framework의 정확한 릴리스를 지정합니다.

this article에 따르면 sku 특성 (버전 번호 포함)은 .NET Framework 4.0부터 인식됩니다. 보조 노트로

은 : .NET 3.5뿐만 아니라 sku을 사용하고있다하지만 .NET 4.5 이후 더 이상 존재하지 않는 당신이 .NET Framework Client Profile (sku="client")을 지원되도록 지정할 수 있습니다.

그래서 결론은 : .NET 프레임 워크 3.5의 CLR 2.0 로더가 sku 속성에 대해 아무것도 모르기 때문에 당신은 첫 번째 오류 메시지가 표시된다
. .NET 4.0 CLR을 요청하고 있음을 알고 있습니다. (당신이 .config 파일이없는 경우 CLR의 필요한 버전이 경우 v4.0.30319 당신의 .exeinto the manifest을 컴파일됩니다.)

을 만 .NET 프레임 워크 4.0 CLR (4)을 설치 한 후.0 로더는 이제 sku 특성을 읽고 따라서 .NET Framework 4.5도 설치해야한다는 것을 알고 있습니다. 그래서이 두 가지 오류 메시지가 표시됩니다.

+0

그래서 해결 방법이나 해결 방법이 없습니까? – Ala

+0

@Ala 특정 해결 방법이 있습니다 (https://docs.microsoft.com/en-us/dotnet/framework/deployment/initialization-errors-managing-the-user-experience). 하지만 결국 궁극적으로 설치 부트 스트 래퍼를 설치하는 것이 훨씬 쉽습니다 (https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which). -versions-are-installed) 설치하고 필요한 .NET Framework를 설치합니다. 사용할 수있는 몇 가지가 있습니다. 또는 자신 만의 작은 설치 프로그램을 만들 수 있습니다. C++에서. – haindl

+0

@Ala 기본적으로 이들은 주로 .NET을 사용하지 않고 작성되거나 클라이언트에 설치되도록 보장 된 .NET 버전을 사용하여 작성된 프로그램입니다. 그러나 Windows 10 (또는 Windows Server)과 같은 최신 OS에서는 특정 버전의 .NET을 시스템 구성 요소 또는 [OS 업데이트] (https://docs.microsoft.com/en-us/)로만 설치할 수 있습니다. dotnet/framework/install/on-windows-10)을 사용하고 재배포 가능 패키지를 통하지 않습니다. – haindl