다음을 통해 공유


진단 코드 MSB3321

이 문서에서는 MSB3321 오류 코드에 대해 설명합니다.

메시지 텍스트

MSB3321: Importing key file 'value' was canceled.

설명

이 오류는 MSBuild가 Authenticode 인증서를 사용하여 ClickOnce 어셈블리 매니페스트에 서명하려고 하지만 지정된 키 파일에서 프라이빗 키를 가져오지 못하는 경우에 발생합니다.

ClickOnce 배포 프로세스 중이거나 MSBuild에서 Publish 대상을 실행할 때, 어셈블리가 강력한 이름 Authenticode 인증서로 서명됩니다. 이 인증서는 보통 개발 중에 사용하는 임시 "devtest" 인증서이거나, 인증 기관(CA)이 발급한 신뢰할 수 있는 인증서일 수 있습니다. 이 시나리오는 명령줄에서 ClickOnce 애플리케이션 빌드에 설명되어 있습니다.

파일에서 프라이빗 키가 .pfx 있는 인증서를 사용하려면 인증서를 신뢰할 수 있도록 암호로 확인해야 합니다. 그런 다음 MSBuild에서 사용할 수 있습니다. Visual Studio를 사용하여 매니페스트를 빌드하고 서명할 때 키 파일 이름을 지정할 때 Visual Studio에서 암호를 제공합니다. 그러나 Visual Studio를 설치하거나 사용하지 않고 빌드 서버와 같은 다른 컴퓨터에서 동일한 프로젝트를 빌드하는 경우 키를 빌드 서버의 신뢰할 수 있는 인증서 저장소에 추가하고 암호로 확인해야 합니다. 그 후, MSBuild에서 ClickOnce 어셈블리에 서명할 수 있게 됩니다.

해결 방법

빌드 서버를 설정할 때와 같이 Visual Studio가 설치되지 않은 컴퓨터에서 빌드하는 경우 Windows 신뢰할 수 있는 게시자 인증서 저장소에 Authenticode 인증서 및 프라이빗 키를 추가합니다. certmgr을 사용하여 시스템 저장소에 인증서를 추가할 수 있습니다. 추가되면 인증서가 만료되거나 제거될 때까지 어셈블리에 서명하려고 할 때 MSBuild에서 사용할 수 있습니다.

.NET 프로젝트에 dotnet-mage.exe 사용하거나 .NET Framework 프로젝트에 mage.exe (매니페스트 어셈블리 생성)를 사용하여 ClickOnce 매니페스트를 생성하고 서명할 수도 있습니다. ClickOnce 애플리케이션 수동 배포를 참조하세요.

적용 대상

MSBuild의 모든 버전