반응형

오류

다운로드 받은 소스 코드를 빌드하는 경우 아래와 같은 오류가 나며 빌드가 안되는 경우가 있습니다.

 

원인

이 오류는 MSBuild에서 보안 제한이 적용되는 웹에서 다운로드한 파일을 처리하려고 할 때 발생합니다.

브라우저를 사용하여 HTML 페이지 같은 웹 자산을 Windows 디바이스에 다운로드하면 브라우저에서 웹 표시라는 표식을 삽입합니다. 이 표식은 페이지가 시작된 사이트의 보안 영역을 기록합니다. 이는 사이트에서 페이지를 다운로드한 후에도 잠재적으로 악의적인 페이지로부터 사이트를 보호하고 원래 사이트의 보안 수준을 적용하기 위함입니다.

 

오류 해결 방법

MSBuild는 이러한 보안 제한을 존중하지만, 사용자가 해당 콘텐츠를 신뢰하기로 결정한 경우 파일 탐색기에서 단일 파일을 차단 해제하면 제한을 재정의할 수 있습니다(파일의 속성 창을 열고 차단 해제 를 선택하세요). PowerShell 스크립트를 사용하여 여러 파일의 차단을 해제하려면 Unblock-File cmdlet을 사용하세요.

 

파일 속성 창 또는 PowerShecll 스크립트에서 차단 해제가 가능합니다.

1. 파일 속성 창

탐색기에서 오류가 발생한 파일의 속성창을 열어보면 하단에 보안 항목이 있고 차단해제 체크 박스 버튼이 보이는데

차단 해체 체크 박스를 체크하고 확인 버튼을 클릭하여 속성창을 닫으면 오류가 해결됩니다.

이 경우 한 번에 한 개의 파일만 처리할 수 있으므로 여러 개의 파일을 처리할려면 PowerShell 스크립트로 처리하는 것이 좋습니다.

 

2. PowerShell 스크립트

PowerShell 스크립트Unblock-File cmdlet을 이용하여 해당 파일(들)의 차단을 해제하는 방법입니다.

 

1. 먼저 차단을 해제할 파일이 있는 폴더에서 powershell 창을 실행합니다.

 

2. powershell 창에서 명령어를 실행합니다.

get-childitem -path .\ -recurse | unblock-file

 

오류없이 빌드가 된다면 파일에 대한 차단 해제가 적용된 것입니다.

 

참고 사이트

 

MSB3821: 'path' 파일이 인터넷 또는 제한 영역에 있거나 파일에 웹 표시가 있어 처리할 수 없습니다.

이 오류는 MSBuild에서 보안 제한이 적용되는 웹에서 다운로드한 파일을 처리하려고 할 때 발생합니다.

docs.microsoft.com

 

 

Unblock-File (Microsoft.PowerShell.Utility) - PowerShell

This cmdlet only works on the Windows and macOS platforms. The Unblock-File cmdlet lets you open files that were downloaded from the Internet. It unblocks PowerShell script files that were downloaded from the Internet so you can run them, even when the Pow

docs.microsoft.com

 

 

 

PowerShell - List Files in Directory - ShellGeek

PowerShell Get-ChildItem cmdlet returns files or folders in root directory.PowerShell PSIsContainer to get files in directory or folders

shellgeek.com

 

반응형

+ Recent posts