최종 업데이트: 2025년 9월 11일
.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 실행 → 설치된 Visual Studio에서 수정 클릭
- 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 추가
- 수정 버튼으로 설치 완료
방법 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
→ 웹 워크로드 설치.
📚 참고 자료
- MSB4019 오류 — Microsoft Learn
- Visual Studio 워크로드 설치 — Microsoft Learn
- Visual Studio 설치 가이드 (워크로드 탭 예시)
💡 팁: 문제가 해결됐다면 팀 내에 공유해 재발을 줄이세요.
0 댓글