Visual Studio MSB4019 오류 해결 방법 | 워크로드 설치부터 MSBuild 경로 정리까지

최종 업데이트: 2025년 9월 11일

MSB4019는 MSBuild가 Import하려는 .props/.targets 파일을 찾지 못해 발생합니다. 대부분은 필수 워크로드 미설치 또는 잘못된 MSBuild 경로 사용이 원인입니다.
  • C++: Desktop development with C++ 워크로드 설치
  • : ASP.NET and web development 워크로드 설치
  • SQL(SSDT): Data storage and processing → SQL Server Data Tools 설치
  • 빌드: Visual Studio가 제공하는 MSBuild 사용(Developer Command Prompt 권장, VS 2022 기본 64비트)

🔍 오류 증상 확인하기

대표적인 MSB4019 오류 형태는 다음과 같습니다.

error MSB4019: The imported project 'C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v170\Microsoft.Cpp.Default.props' was not found.
error MSB4019: The imported project '...\Microsoft\VisualStudio\v17.0\WebApplications\Microsoft.WebApplication.targets' was not found.
error MSB4019: The imported project '...\Microsoft.Data.Tools.Schema.SqlTasks.targets' was not found.

오류 메시지 속 누락된 파일명을 먼저 확인하세요. 해당 파일을 제공하는 워크로드/도구가 다릅니다.

⚠️ 발생 원인 분석

  • 필수 워크로드 미설치(C++/웹/SSDT)
  • VS가 아닌 다른 MSBuild로 빌드(경로 문제)
  • .vcxproj/.csproj의 하드코딩된 경로
  • CI/빌드 서버에 필요한 타겟 파일 부재

🛠️ 해결 방법

방법 1: 필요한 구성 요소 설치

Visual Studio Installer Workloads 탭 예시 화면. ASP.NET과 .NET desktop development 등이 보이며 C++과 SSDT는 스크롤 시 확인 가능
Visual Studio Installer 워크로드 선택 화면(예시). ASP.NET과 .NET desktop development 항목이 보이며, C++과 SQL Server Data Tools(SSDT)는 스크롤을 내려야 확인할 수 있습니다.

설치 절차

  1. 시작 메뉴에서 Visual Studio Installer 실행 → 설치된 Visual Studio에서 수정 클릭
  2. Workloads 탭에서 필요 항목 선택
    • C++: Desktop development with C++
    • : ASP.NET and web development
    • SQL(SSDT): Data storage and processing → SQL Server Data Tools
    • 구 툴셋 요구 시(v142/v141/v140): Individual components에서 해당 MSVC v14x 추가
  3. 수정 버튼으로 설치 완료

방법 2: 올바른 MSBuild 사용

Visual Studio가 제공하는 MSBuild로 빌드하세요(Developer Command Prompt 권장).

msbuild YourSolution.sln -m -v:minimal
"%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" YourSolution.sln

주의: dotnet build는 SDK 스타일 프로젝트에서 권장됩니다. 레거시/비 SDK(특히 C++/웹앱/SSDT)는 VS의 MSBuild 사용을 권장합니다.

팁: VS 2022는 기본 64비트 MSBuild를 사용합니다. Developer Command Prompt를 열면 ...\MSBuild\Current\Bin 경로가 PATH에 자동 설정됩니다.

방법 3: 프로젝트 파일 수정

하드코딩 경로를 쓰지 말고 표준 변수를 사용하세요.

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

참고: VS 2022의 기본 위치는 C:\Program Files\Microsoft Visual Studio\2022\Edition\MSBuild\Microsoft\VC\v170\Microsoft.Cpp.Default.props 입니다. 오류 로그가 Program Files (x86)\MSBuild\Microsoft.Cpp\...로 찍히면 잘못된 Import/경로 하드코딩을 의심하세요.

웹 프로젝트 Import 예시:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets"
        Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"
        Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets')" />

방법 4: 빌드 환경 점검

현재 사용 중인 MSBuild 경로가 VS 폴더를 가리키는지 확인합니다.

where msbuild

올바른 경로 예시: C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe

✅ 해결 확인 방법

  • 누락된 파일명을 오류 메시지에서 확인했다
  • 해당 워크로드/도구를 설치했다
  • VS의 MSBuild로 빌드했다
  • 프로젝트 <Import>가 표준 변수로 정리됐다
  • 빌드가 오류 없이 성공한다
msbuild YourSolution.sln -t:Clean
msbuild YourSolution.sln -restore -m -v:minimal

packages.config를 쓰는 레거시는 다음 중 하나로 복원하세요.

msbuild YourSolution.sln -t:Restore -p:RestorePackagesConfig=true
nuget restore YourSolution.sln

❓ 자주 묻는 질문

Q1. VCTargetsPath만 잡아도 되나요?
임시로는 가능하지만 권장 해결은 관련 워크로드를 정식 설치하는 것입니다.

Q2. CI/CD 환경에서는?
Visual Studio Build Tools 2022에 필요한 워크로드(또는 Web development build tools 등 개별 구성요소)를 포함해 설치하세요. NuGet의 MSBuild.Microsoft.VisualStudio.Web.targets는 우회책일 뿐, 근본 해결은 워크로드 설치입니다.

Q3. dotnet build로도 가능?
SDK 스타일 프로젝트에서 권장. 레거시/비 SDK는 VS MSBuild 권장.

Q4. 특정 파일만 계속 누락?
SqlTasks.targets → SSDT 설치, WebApplication.targets → 웹 워크로드 설치.

📚 참고 자료

  1. MSB4019 오류 — Microsoft Learn
  2. Visual Studio 워크로드 설치 — Microsoft Learn
  3. Visual Studio 설치 가이드 (워크로드 탭 예시)

💡 팁: 문제가 해결됐다면 팀 내에 공유해 재발을 줄이세요.

댓글 쓰기

0 댓글