MSVS 2026 환경에서 MFC DLL 빌드 중 xsd.exe(코드: 1) 에러가 발생하는 가장 핵심적인 원인은 Visual Studio 2017 버전부터 C++ 프로젝트에 대한 xsd.exe 지원(CodeProvider 기반의 C++ 헤더 생성 기능)이 공식적으로 중단(Deprecated) 및 제거되었기 때문입니다. [1]
이전 구형 VS 버전에서 작성된 MFC 프로젝트가 빌드 이벤트나 사용자 지정 빌드 단계(Custom Build Step)를 통해 XML 스키마(.xsd) 파일로부터 C++ 소스 코드를 자동 생성하도록 설정되어 있다면, 최신 컴파일러 환경인 VS 2026에서는 이를 정상적으로 처리하지 못하고 런타임 오류(종료 코드 1)를 발생시킵니다.
구체적인 발생 원인과 해결 방법은 다음과 같습니다.
1. 주요 원인 분석
- C++ 코드 생성 공급자(CppCodeProvider) 누락
xsd.exe가 C++ 클래스(.h, .cpp)를 생성하려면 내부적으로 CppCodeProvider.dll이 필요합니다. 하지만 최신 Visual Studio에서는 이 구성 요소가 전역 어셈블리 캐시(GAC)에 기본 등록되지 않아 xsd.exe가 실행 도중 실패하게 됩니다. - 32비트/64비트 호환성 문제
빌드하려는 MFC DLL의 아키텍처(x64 등)와 .NET Framework 기반인 xsd.exe가 어셈블리를 로드하는 아키텍처(AnyCPU)가 일치하지 않아 호환성 오류가 나기도 합니다. - XSD 스키마 종속성 오류
.xsd 파일 내부에 외부 URL 주소나 다른 파일(.xsd)을 참조(xs:import, xs:include)하는 코드가 포함되어 있지만, 오프라인 빌드 환경이거나 해당 파일이 경로에 없어 스키마 검증에 실패한 경우입니다.

2. 해결 방법
방법 ①: 프로젝트에서 XSD 자동 생성 설정 제거 (가장 권장)
프로젝트가 오래되었거나 이미 필요한 C++ 헤더 파일(.h)이 프로젝트 폴더 내에 생성되어 존재한다면, 매번 빌드할 때마다 xsd.exe를 실행할 필요가 없습니다.
- Visual Studio [솔루션 탐색기]에서 등록된 .xsd 파일을 찾습니다.
- 해당 파일을 마우스 오른쪽 단추로 클릭한 후 [속성]으로 이동합니다.
- [일반] 탭의 [빌드에서 제외] 항목을 '예'로 변경하거나, [항목 형식]을 '사용자 지정 빌드 도구'에서 '문서' 또는 '없음'으로 변경합니다.
- 만약 [프로젝트 속성] ➔ [빌드 이벤트] (사전 빌드/사후 빌드)에 xsd.exe ... 명령어가 직접 기입되어 있다면 해당 줄을 삭제합니다.
방법 ②: CppCodeProvider.dll 수동 등록 (기능 유지 필요 시)
만약 무조건 빌드 시점에 스키마를 해석하여 C++ 코드를 계속 뽑아내야 하는 상황이라면 아래 방법을 통해 제거된 연동 기능을 강제로 되살려야 합니다. [1]
- Visual Studio용 개발자 명령 프롬프트(Developer Command Prompt)를 관리자 권한으로 실행합니다.
- 아래 명령어를 입력하여 Visual Studio 디렉터리 내에 남아있는 전역 공급자 DLL 파일 경로를 확인하고, gacutil 도구를 사용해 GAC에 강제 등록합니다.
LIST
'MFC' 카테고리의 다른 글
| Visual Studio 2022 이후 버전에서 .props 파일 대체 방법 (1) | 2026.05.20 |
|---|---|
| MFC 예외 객체(CException)가 해제되지 않아 메모리 누수가 발생 (0) | 2025.12.23 |
| MSXML에서 createElement를 사용할 때 자동으로 xmlns="" 속성이 붙는 이유와 막는 방 (0) | 2025.12.19 |
| BluetoothFindFirstDevice Example (0) | 2024.10.21 |
| CFileDialog의 Title 이름 변경하는 방법 (0) | 2024.01.16 |