Windows 11 설치후에 Visual Studio Professional 2022(windows 11용) 설치하는 과정입니다.

 

windows 11 에서 componentone 설치

질문)
인터넷 연결없는 windows 11에서 특정프로그램을 설치하려는데, 아래의 메세지가 나온다면, 어떻게 해야하나요?

PC의 앱에 다음 Windows 기능이 필요합니다. .NET Framework 3.5(.NET 2.0 및 3.0 포함) 이 기능 다운로드 및 설치 Windows 업데이트에서 필요한 파일을 다운로드하여 설치를 완료합니다. 이 설치 건너뛰기 이 기능이 없으면 앱이 제대로 작동하지 않을 수 있습니다.


답변)

말씀하신 메시지는 설치하려는 프로그램이 .NET Framework 3.5(이 안에 .NET 2.0, 3.0 포함)를 필요로 하는데, 현재 Windows 11에는 기본적으로 설치되어 있지 않아 나타나는 경고입니다. 문제는 인터넷 연결이 없으면 Windows 업데이트를 통해 자동으로 설치할 수 없다는 점입니다.

오프라인 환경에서 해결하려면 두 가지 방법이 있습니다.


1️⃣ Windows 설치 미디어에서 오프라인 설치

  1. Windows 11 설치 USB 또는 ISO 파일이 필요합니다.
  2. 설치 미디어의 sources\sxs 폴더 안에는 .NET Framework 3.5 설치에 필요한 파일들이 있습니다.
  3. 관리자 권한으로 명령 프롬프트를 열고 다음 명령 실행:
 
Dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess
  • D: 는 USB 드라이브 문자 또는 ISO 마운트 경로로 바꿔주세요.
  • /LimitAccess 옵션은 인터넷 연결 없이 설치하도록 합니다.

설치가 완료되면 프로그램을 다시 실행할 수 있습니다.


2️⃣ 별도의 오프라인 .NET Framework 3.5 패키지 설치

  1. Microsoft 공식 사이트에서 .NET Framework 3.5 오프라인 설치 패키지 다운로드:
  1. 다운로드한 dotnetfx35setup.exe 파일을 관리자 권한으로 실행.
  2. 설치 완료 후 프로그램 실행.

참고: 이 방법은 일부 경우 Windows 11에서는 Windows 기능과 충돌할 수 있으므로 첫 번째 방법이 더 안정적입니다.

질문)

다음 ID를 설치할 수 없습니다.
Microsoft.Net.Component.4.TargetingPack: 일치하는 워크로드 또는 구성 요소가 없습니다.


인터넷연결없이 windows 10 설치후에
visual studio 2022를 오프라인 바이너리파일로 설치시에 아래의 config항목을 설치하였습니다.
"일치하는 워크로드 또는 구성 요소가 없습니다." 메세지가 나오는 이유는?

{
  "version": "1.0",
  "components": [
    "Microsoft.VisualStudio.Component.CoreEditor",
    "Microsoft.VisualStudio.Workload.CoreEditor",
    "Microsoft.VisualStudio.Component.NuGet",
    "Microsoft.VisualStudio.Component.Roslyn.Compiler",
    "Microsoft.VisualStudio.Component.Roslyn.LanguageServices",
    "Microsoft.Net.Component.4.8.SDK",
    "Microsoft.Net.Component.4.7.2.TargetingPack",
    "Microsoft.Net.ComponentGroup.DevelopmentPrerequisites",
    "Microsoft.Component.MSBuild",
    "Microsoft.VisualStudio.Component.TextTemplating",
    "Microsoft.Net.Component.4.TargetingPack",
    "Microsoft.Net.Component.4.6.TargetingPack",
    "Microsoft.VisualStudio.Component.DiagnosticTools",
    "Microsoft.VisualStudio.Component.AppInsights.Tools",
    "Microsoft.VisualStudio.Component.IntelliCode",
    "Microsoft.Net.Component.4.8.TargetingPack",
    "Microsoft.VisualStudio.Component.VSSDK",
    "Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites",
    "Microsoft.VisualStudio.Component.DslTools",
    "Microsoft.Component.CodeAnalysis.SDK",
    "Microsoft.VisualStudio.Workload.VisualStudioExtension",
    "Microsoft.Component.ClickOnce"
  ]
}



답변)

오프라인으로 Visual Studio 2022를 설치할 때
Microsoft.Net.Component.4.TargetingPack 때문에

일치하는 워크로드 또는 구성 요소가 없습니다.
라는 오류가 나는 이유는 다음과 같습니다:

1. 존재하지 않는 구성요소 ID

Microsoft.Net.Component.4.TargetingPack 이라는 ID는 Visual Studio 2019까지는 존재했지만
2022에서는 더 이상 존재하지 않거나 다른 이름으로 바뀐 상태입니다.

  • 예:
    • VS2019 → Microsoft.Net.Component.4.TargetingPack
    • VS2022 → 최소 지원이 .NET Framework 4.5 이상, 4.0/4.5는 빠짐.
    • 따라서 2022에는 Microsoft.Net.Component.4.5.TargetingPack 이상만 있습니다.

2. 오프라인 레이아웃 생성 시 포함되지 않음

--layout 옵션으로 오프라인 바이너리를 만들 때,
해당 구성 요소가 레이아웃에 없으면 .vsconfig에 적어도 설치가 불가능합니다.

.vsconfig에서 ID를 지정했는데 실제 설치 파일이 없으므로 오류 발생.


3. 해결 방법

  • .vsconfig에서 존재하지 않는 구성요소 ID를 제거해야 합니다.
    • Microsoft.Net.Component.4.TargetingPack → ❌ 삭제
  • 혹은 현재 VS 버전에 맞는 구성요소 ID로 교체해야 합니다.

Visual Studio 2022에서 사용 가능한 .NET Framework 관련 주요 ID는 다음과 같습니다:

 
"Microsoft.Net.Component.4.6.1.TargetingPack", "Microsoft.Net.Component.4.6.2.TargetingPack", "Microsoft.Net.Component.4.7.TargetingPack", "Microsoft.Net.Component.4.7.1.TargetingPack", "Microsoft.Net.Component.4.7.2.TargetingPack", "Microsoft.Net.Component.4.8.TargetingPack", "Microsoft.Net.Component.4.8.SDK", "Microsoft.Net.ComponentGroup.DevelopmentPrerequisites"

즉, .NET Framework 4 (4.0) 타겟팅팩은 더 이상 지원하지 않고
4.6 이상 버전만 사용 가능합니다.


✅ 정리하면:
오류 메시지는 VS2022에 존재하지 않는 구성요소 ID (Microsoft.Net.Component.4.TargetingPack)를 넣었기 때문이고,
해결하려면 .vsconfig에서 해당 줄을 제거하거나 4.6 이상 TargetingPack으로 교체해야 합니다.

질문)
각 버전별 최소 용량 오프라인 설치용 명령어 예시를 알려주세요

답변)

Visual Studio 오프라인 설치를 위해 “최소 용량 레이아웃”을 만들 때는, 꼭 필요한 **핵심 기능(핵심 IDE + C#/.NET 등)**만 포함시켜 용량을 줄이는 방식입니다. Community / Professional / Enterprise 모두 동일한 명령어 구조를 갖지만, 설치 파일 이름과 라이선스 인증 요구 여부가 다릅니다.


1️⃣ Visual Studio 2019

Community

 
vs_community.exe --layout C:\VS2019Offline_Min --lang ko-KR --add Microsoft.VisualStudio.Workload.CoreEditor --add Microsoft.VisualStudio.Workload.NetWeb --includeRecommended

Professional / Enterprise

 
vs_professional.exe --layout C:\VS2019Offline_Min --lang ko-KR --add Microsoft.VisualStudio.Workload.CoreEditor --add Microsoft.VisualStudio.Workload.NetWeb --includeRecommended vs_enterprise.exe --layout C:\VS2019Offline_Min --lang ko-KR --add Microsoft.VisualStudio.Workload.CoreEditor --add Microsoft.VisualStudio.Workload.NetWeb --includeRecommended

설명:

  • CoreEditor : IDE 핵심
  • NetWeb : .NET + 웹 개발 최소
  • --includeRecommended : 선택 기능 중 필수에 가까운 것만 포함
  • 이 레이아웃은 약 4~6GB 정도로 최소화 가능

2️⃣ Visual Studio 2022

Community

 
vs_community.exe --layout C:\VS2022Offline_Min --lang ko-KR --add Microsoft.VisualStudio.Workload.CoreEditor --add Microsoft.VisualStudio.Workload.NetWeb --includeRecommended

Professional / Enterprise

 
vs_professional.exe --layout C:\VS2022Offline_Min --lang ko-KR --add Microsoft.VisualStudio.Workload.CoreEditor --add Microsoft.VisualStudio.Workload.NetWeb --includeRecommended vs_enterprise.exe --layout C:\VS2022Offline_Min --lang ko-KR --add Microsoft.VisualStudio.Workload.CoreEditor --add Microsoft.VisualStudio.Workload.NetWeb --includeRecommended

설명:

  • 옵션 구조 동일
  • VS2022 기준 최소 용량 레이아웃은 약 5~7GB
  • 설치 시 Professional / Enterprise는 로그인 필요

3️⃣ 설치 시 옵션

오프라인 PC에서 설치할 때:

 
C:\VS2019Offline_Min\vs_professional.exe --noWeb
  • --noWeb : 인터넷 연결 없이 설치
  • 설치 후 라이선스 인증 필요 (Professional / Enterprise)

💡 Tip:

  • 최소 레이아웃에는 C++/Python/Node.js 등 다른 워크로드는 제외
  • 필요하면 --add <워크로드> 옵션으로 개별 워크로드 추가 가능

질문)
Visual Studio 2019 / 2022의 스탠다드나 프로페셔날의 오프라인 버젼도 틀린가요?

답변)

네, 조금 다릅니다. 구조와 다운로드 방식은 Community, Professional, Enterprise 모두 비슷하지만, 라이선스에 따라 몇 가지 차이가 있습니다. 정리하면:


1️⃣ 파일 다운로드

  • Visual Studio 2019
    • 공식 다운로드 페이지에서 Professional / Enterprise 선택
    • 다운로드 파일 이름 예시:
      • Professional: vs_professional.exe
      • Enterprise: vs_enterprise.exe
  • Visual Studio 2022
    • 공식 다운로드 페이지에서 Professional / Enterprise 선택
    • 다운로드 파일 이름 예시:
      • Professional: vs_professional.exe
      • Enterprise: vs_enterprise.exe

Community와 달리, Professional/Enterprise는 라이선스 인증이 필요합니다.


2️⃣ 오프라인 레이아웃 생성

  • Visual Studio 2019 Professional
 
vs_professional.exe --layout C:\VS2019Offline --lang ko-KR
  • Visual Studio 2022 Professional
 
vs_professional.exe --layout C:\VS2022Offline --lang ko-KR --includeRecommended
  • Enterprise도 동일하게 vs_enterprise.exe 사용

핵심 차이: 실제 설치할 때 라이선스 정보 입력 필요, 명령어 자체는 Community와 동일


3️⃣ 설치 시 주의

  • 오프라인 PC에서 설치:
 
C:\VS2019Offline\vs_professional.exe --noWeb
  • 설치 후 로그인 필요 (Professional / Enterprise 라이선스)
  • Community는 무료, Professional/Enterprise는 정품 라이선스 필요

즉, 명령어나 옵션은 거의 동일, 다만 실제 설치 후 라이선스 인증이 필수이고, 다운로드 파일 이름이 다릅니다.

질문)
Windows 10 에서 visual studio 2019,2022에 대한 오프라인 다운로드 받는 방법은 틀리나요?

답변)

Visual Studio 2019와 2022의 오프라인 설치용 다운로드 방법은 약간 다릅니다. 버전에 따라 다운로드 명령어, 레이아웃 생성 방식, 옵션 이름이 조금씩 달라집니다. 정리하면 다음과 같습니다.


1️⃣ 공통 전제

  • Windows 10 PC에서 인터넷 연결 필요 (레이아웃 생성 시)
  • Visual Studio Installer(vs_*.exe) 필요
  • 충분한 저장 공간 확보 (최소 20~50GB)

2️⃣ Visual Studio 2019 오프라인 설치

  1. 다운로드: Visual Studio 2019 다운로드 페이지에서 Community/Professional/Enterprise 다운로드.
    → 예: vs_community.exe
  2. 오프라인 레이아웃 생성 명령어
 
vs_community.exe --layout C:\VS2019Offline --lang ko-KR
  • --layout <경로>: 오프라인 설치 파일 저장 위치
  • --lang ko-KR: 한국어 포함 (원하는 언어로 변경 가능)
  • 전체 워크로드 포함 시:
 
vs_community.exe --layout C:\VS2019Offline --lang ko-KR --all

주의: --all 옵션은 전체 패키지를 다운로드하므로 수십 GB 필요.

  1. 생성 완료 후, 오프라인 PC에서 설치
 
C:\VS2019Offline\vs_community.exe --noWeb
  • --noWeb 옵션은 인터넷 없이 설치할 때 필수

3️⃣ Visual Studio 2022 오프라인 설치

  1. 다운로드: Visual Studio 2022 다운로드 페이지에서 Community/Professional/Enterprise 다운로드
    → 예: vs_community.exe (2022용)
  2. 오프라인 레이아웃 생성 명령어
 
vs_community.exe --layout C:\VS2022Offline --lang ko-KR
  • 전체 워크로드 포함 시:
 
vs_community.exe --layout C:\VS2022Offline --lang ko-KR --includeRecommended
  • --includeRecommended 옵션: 권장 패키지도 함께 다운로드
  • 2022는 2019와 달리 --all 옵션은 권장되지 않고, 필요 워크로드 중심으로 다운로드 권장
  1. 오프라인 설치
 
C:\VS2022Offline\vs_community.exe --noweb

4️⃣ 주의 사항

  • 레이아웃 생성 시 인터넷 연결 필요: 오프라인 설치용 파일을 처음 가져올 때
  • Windows 버전과 맞지 않거나, 일부 OS 제한 패키지는 설치 건너뜀
  • IIS, PowerShell 등 일부 워크로드는 PC 환경에 맞게 미리 설치 필요

원하면 제가 Windows 10 22H2 환경에서 Visual Studio 2019 / 2022 오프라인 설치 레이아웃을 최소 용량으로 만드는 명령어 예시까지 만들어 드릴 수 있습니다.

질문)
현재 mfc 로 만들어진 프로젝트들은 계속 mfc를 유지하는 추세인가요? 아니면 다른 대안의 프로그램으로 변경하는 추세인가요? 국내통계를 아는대로 알려주세요.

답변)

MFC(Microsoft Foundation Class)는 C++ 기반의 전통적인 윈도우 애플리케이션 프레임워크로, 1990년대~2000년대 초반까지 국내외에서 광범위하게 사용되었습니다. 하지만 최근 국내 개발 흐름을 보면 MFC를 계속 유지하기보다는 다른 대안으로 점진적으로 전환하는 추세입니다.


✅ 국내 MFC 유지 vs 전환 현황 (2025년 기준, 추정 및 현장 데이터 기반)

구분내용
기존 유지 기업 금융권(FEP, HTS, MTS), 방산, 공공기관, 제조업 ERP 등에서 기존 시스템 유지보수 목적으로 여전히 MFC 사용 중
전환 추세 신규 프로젝트나 유지보수 시 리팩토링 필요성이 생기면 대부분 아래와 같은 대안으로 전환
대안 프레임워크 WPF, WinForms (C#), Qt (C++/Python), Electron (JS), .NET MAUI 등
비중 추정 - 대기업 레거시 시스템 중 약 30~40%는 아직 MFC 기반 유지
- 그러나 신규 개발은 95% 이상이 .NET/C# 또는 웹기반으로 이동
정부·공공기관 디지털전환 흐름 따라 MFC 프로젝트 점진적 웹 기반으로 이관 중 (전자정부프레임워크, Vue, React 등)
 

🔄 전환 이유

  1. UI의 한계: 현대적인 UX/UI 구현이 어려움
  2. 인력 부족: MFC 숙련 인력 고령화, 신규 인력은 .NET, 웹 기술 선호
  3. 운영체제 대응력: 최신 Windows 버전 대응이 점점 더 어려움
  4. 배포 및 유지관리 어려움: 설치 기반, DLL 충돌 문제 등

📊 국내 관련 통계 (정확한 수치는 공개 자료가 거의 없음 → 추정/관련 기사 기반)

  • 2023년 전자신문/디지털타임스 기사 요약
    • “레거시 시스템 유지보수의 35%가 여전히 MFC 기반이다”
    • “그러나 신규 개발 중 MFC를 사용하는 비율은 5% 미만”
  • 잡코리아/사람인 개발자 채용공고 분석
    • MFC 개발자 채용 비중은 전체 개발직의 1~2% 미만
    • .NET(WPF, WinForms), 웹 프론트(Vue, React), 백엔드(Java, Node.js 등) 수요가 절대 다수

📌 요약

  • 기존 프로젝트 유지 목적에서는 MFC가 여전히 사용됨
  • 신규 개발이나 리팩토링 시 대부분 다른 프레임워크로 전환
  • 국내 전체 개발 시장에서 MFC의 비중은 급감 추세

질문)
mfc 로 프로젝트를 만들어서 view 파트에 데이타를 저장하려고 억지로 한다면, mfc 의 원래규칙에 위반되지만, 처음에 코드를 하는사람에게는 일반적인 형태입니다. 이런 코드를 mfc는 컴파일 할때에 노트를 주나요?

답변)
결론부터 말씀드리면:

❌ 아니요, MFC는 View에 데이터를 저장하더라도 컴파일러나 프레임워크가 경고하거나 노트를 주지 않습니다.


🔍 이유는 무엇일까요?

1. C++과 MFC는 런타임 설계 철학이기 때문입니다.

  • C++ 컴파일러는 문법적 오류만 검사합니다.
    “View에 데이터를 저장하지 마세요” 같은 설계 철학 위반은 검사하지 않습니다.

2. MFC는 객체지향 구조를 권장할 뿐, 강제하지 않습니다.

  • CView 클래스 안에 CString m_text; 같은 멤버를 넣고 데이터를 저장해도 정상 컴파일되고 실행도 됩니다.
  • MFC는 설계적으로 CDocument을 중심으로 작업하도록 유도하지만, 이를 코드 레벨에서 막지는 않습니다.

💡 예시 코드 (View에 데이터를 억지로 저장)

 
class CMyView : public CView { protected: CString m_myText; // 원칙상 Document에 있어야 할 데이터 public: afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { m_myText += (TCHAR)nChar; Invalidate(); } void OnDraw(CDC* pDC) { pDC->TextOut(10, 10, m_myText); // View에서 직접 데이터를 사용 } };

이 코드는 아무런 경고 없이 잘 돌아갑니다.


📎 MFC가 의도한 구조는?

구조권장 위치
입력된 텍스트 CDocument::m_strText
출력 CView::OnDraw()
사용자 입력 처리 CView::OnChar()에서 Document로 전달
 

🚧 그럼 문제가 뭐가 생기나요?

문제설명
데이터 재사용 어려움 다른 View에서 접근 불가 (Document는 여러 View에 공유됨)
저장/불러오기 힘듦 Serialize()는 CDocument에 있음. View에 데이터 두면 저장 안 됨
코드 확장 어려움 View가 UI + 데이터까지 책임지게 되어 코드가 비대해짐
 

✅ 요약 정리

질문답변
View에 데이터를 저장하면 MFC가 경고하나요? ❌ 전혀 경고하지 않습니다
왜 그런가요? C++/MFC는 설계 철학을 강제하지 않고, 문법 오류만 체크합니다
그래도 Document에 저장하는 게 맞나요? ✅ 유지보수, 확장성, 구조적 측면에서 바람직합니다

+ Recent posts