VS2008 설치 프로젝트에는 설치 시 항상 .NET 3.5가 필요하지만 필요하지 않습니다!

StackOverflow https://stackoverflow.com/questions/68561

  •  09-06-2019
  •  | 
  •  

문제

1, 기본 Windows Forms 프로젝트를 생성 및 빌드하고 프로젝트 속성을 확인합니다.해당 프로젝트는 .NET Framework 2.0을 대상으로 한다고 나와 있습니다.

2, Windows Forms 프로젝트에서 단일 실행 파일만 설치하는 설치 프로젝트를 만듭니다.

3, 해당 설치 프로그램을 실행하면 항상 컴퓨터에 .NET 3.5 SP1을 설치해야 한다는 메시지가 나타납니다.그러나 실제로는 2.0만 필요하므로 고객이 필요하지 않을 때 .NET 3.5를 강제로 설치하는 것을 원하지 않습니다.이미 2.0이 설치되어 있을 수 있으므로 강제로 업그레이드하는 것은 바람직하지 않습니다.

설치 프로젝트의 필수 구성 요소를 살펴보고 .NET Framework 2.0 항목을 확인했는데 나머지는 모두 선택 취소되어 있습니다.따라서 이 이상한 런타임 요구 사항에 대한 이유를 찾을 수 없습니다.이 문제 해결 방법 아시는 분 계신가요?

도움이 되었습니까?

해결책

파일을 수동으로 편집할 필요가 없습니다.힌트는 "LaunchCondition"이라는 GUID 바로 위에 있습니다.

  1. 설치 프로젝트를 마우스 오른쪽 버튼으로 클릭하세요.
  2. "보기" -> "실행 조건"을 선택하세요.
  3. 아직 확장되지 않은 경우 "Launch Conditions" 노드를 확장합니다.
  4. ".NET Framework" 노드를 마우스 오른쪽 버튼으로 클릭하고 "속성 창"을 선택합니다.
  5. "속성" 창에서 "버전" 값을 적절한 값(귀하의 경우 2.0.50727)으로 변경합니다.

왜 이것이 처음부터 적절하게 설정되지 않았는지 모르겠습니다.

다른 팁

2.0 배포를 목표로 하는 경우에도 일부 어셈블리에는 3.5가 필요할 수 있습니다.예를 들어 LINQ에는 3.0이 필요합니다.그러나 이는 빌드할 때 반영되어야 합니다.각 어셈블리를 확인하여 2.0과 호환되는지 확인하세요.3.5가지가 몰래 들어가는 것을 원하지 않습니다.이 경우 WPF를 지원하는 타사 컨트롤 라이브러리가 될 것 같습니다.

나는 결국 내 질문에 대한 답을 찾았습니다.

메모장을 사용하여 프로젝트 파일을 비교하면서 VS2008의 설정 프로젝트에 버전 3.5를 요청하는 항목이 있고 VS2005 프로젝트의 동일한 섹션이 2.0으로 표시되어 있음을 확인했습니다.이상한 점은 섹션이 Visual Studio 환경 내에서 수동으로 변경할 수 없는 것처럼 보이므로 프로젝트 파일을 수동으로 업데이트해야 한다는 것입니다.여기 어디에든 동일한 문제가 발생하는 프로젝트 파일의 문제가 되는 영역이 있습니다.

"Deployable"
{
    "CustomAction"
    {
    }
    "DefaultFeature"
    {
    "Name" = "8:DefaultFeature"
    "Title" = "8:"
    "Description" = "8:"
    }
    "ExternalPersistence"
    {
        "LaunchCondition"
        {
            "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_FC497D835F7243569DCCC3E3ACE4196D"
            {
            "Name" = "8:.NET Framework"
            "Message" = "8:[VSDNETMSG]"
            "Version" = "8:3.5.30729"  <--- UPDATE THIS TO 8:2.0.50727
            "AllowLaterVersions" = "11:FALSE"
            "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617"
            }
        }
    }

저는 항상 Innosetup을 사용하여 프로젝트를 배포했습니다.매우 빠르고 사용자 정의가 가능합니다.약간의 스크립팅으로 할 수 없는 일은 거의 없습니다.Innosetup은 설치된 프레임워크 버전을 감지하고 올바른 버전이 없는 경우(스크립팅을 통해) 사용자에게 메시지를 표시할 수 있습니다.

Innosetup과 같은 대체 배포 도구를 사용해 보고 마음에 드는지 확인하는 것이 좋습니다.거기에는 풍부한 기회가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top