다음을 통해 공유


애플리케이션 및 배포 매니페스트 다시 서명

애플리케이션 매니페스트에서 Windows Forms 애플리케이션, Windows Presentation Foundation 애플리케이션(xbap) 또는 Office 솔루션에 대한 배포 속성을 변경한 후에는 인증서를 사용하여 애플리케이션 및 배포 매니페스트에 다시 서명해야 합니다. 이 프로세스를 수행하면 최종 사용자 컴퓨터에 훼손된 파일이 설치되지 않습니다.

매니페스트에 다시 서명할 수 있는 또 다른 시나리오는 고객이 자신의 인증서를 사용하여 애플리케이션 및 배포 매니페스트에 서명하려고 할 때입니다.

애플리케이션 및 배포 매니페스트 다시 서명

이 프로시저에서는 애플리케이션 매니페스트 파일( .manifest)을 이미 변경한 것으로 가정합니다. 자세한 내용은 방법: 배포 속성 변경을 참조하세요.

참고 항목

.NET Core 3.1 및 .NET 5 이상용 ClickOnce에서는 Mage.exe 대신에 dotnet-mage.exe를 사용합니다. 자세한 내용은 .NET용 ClickOnce를 참조하세요.

Mage.exe를 사용하여 애플리케이션 및 배포 매니페스트에 다시 서명

  1. Visual Studio 명령 프롬프트 창을 엽니다.

  2. 서명하려는 매니페스트 파일이 포함된 폴더로 디렉터리를 변경합니다.

  3. 다음 명령을 입력하여 애플리케이션 매니페스트 파일에 서명합니다. ManifestFileName을 매니페스트 파일 이름에 확장명을 추가하여 바꿉니다. ‘인증서’를 인증서 파일의 상대 경로 또는 정규화된 경로로 바꾸고 ‘암호’를 인증서의 암호로 바꿉니다.

    mage -sign ManifestFileName.manifest -CertFile Certificate -Password Password
    

    예를 들어 다음 명령을 실행하여 추가 기능, Windows Forms 애플리케이션 또는 Windows Presentation Foundation 브라우저 애플리케이션에 대한 애플리케이션 매니페스트에 서명할 수 있습니다. Visual Studio에서 만든 임시 인증서는 프로덕션 환경에 배포하는 데 권장되지 않습니다.

    mage -sign WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -sign ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -sign WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  4. 다음 명령을 입력하여 배포 매니페스트 파일을 업데이트 및 서명하고 이전 단계에서와 같이 자리 표시자 이름을 바꿉니다.

    mage -update DeploymentManifest -appmanifest ApplicationManifest -CertFile Certificate -Password Password
    

    예를 들어 다음 명령을 실행하여 Excel 추가 기능, Windows Forms 애플리케이션 또는 Windows Presentation Foundation 브라우저 애플리케이션에 대한 배포 매니페스트를 업데이트하고 서명할 수 있습니다.

    mage -update WindowsFormsApplication1.application -appmanifest WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -update ExcelAddin1.vsto -appmanifest ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -update WpfBrowserApplication1.xbap -appmanifest WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  5. 선택적으로 마스터 배포 매니페스트(publish\<appname>.application)를 버전 배포 디렉터리(publish\Application Files\<appname>_<version>)에 복사합니다.

애플리케이션 및 배포 매니페스트 업데이트 및 다시 서명

이 프로시저에서는 애플리케이션 매니페스트 파일( .manifest)을 이미 변경했으며 업데이트된 다른 파일이 있는 것으로 가정합니다. 파일이 업데이트되면 파일을 나타내는 해시도 업데이트해야 합니다.

Mage.exe를 사용하여 애플리케이션 및 배포 매니페스트 업데이트 및 다시 서명

  1. Visual Studio 명령 프롬프트 창을 엽니다.

  2. 서명하려는 매니페스트 파일이 포함된 폴더로 디렉터리를 변경합니다.

  3. 게시 출력 폴더의 파일에서 .deploy 파일 확장명을 제거합니다.

  4. 업데이트된 파일에 대한 새 해시를 사용하여 애플리케이션 매니페스트를 업데이트하고 애플리케이션 매니페스트 파일에 서명하려면 다음 명령을 입력합니다. ManifestFileName을 매니페스트 파일 이름에 확장명을 추가하여 바꿉니다. ‘인증서’를 인증서 파일의 상대 경로 또는 정규화된 경로로 바꾸고 ‘암호’를 인증서의 암호로 바꿉니다.

    mage -update ManifestFileName.manifest -CertFile Certificate -Password Password
    

    예를 들어 다음 명령을 실행하여 추가 기능, Windows Forms 애플리케이션 또는 Windows Presentation Foundation 브라우저 애플리케이션에 대한 애플리케이션 매니페스트에 서명할 수 있습니다. Visual Studio에서 만든 임시 인증서는 프로덕션 환경에 배포하는 데 권장되지 않습니다.

    mage -update WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -update ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -update WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  5. 다음 명령을 입력하여 배포 매니페스트 파일을 업데이트 및 서명하고 이전 단계에서와 같이 자리 표시자 이름을 바꿉니다.

    mage -update DeploymentManifest -appmanifest ApplicationManifest -CertFile Certificate -Password Password
    

    예를 들어 다음 명령을 실행하여 Excel 추가 기능, Windows Forms 애플리케이션 또는 Windows Presentation Foundation 브라우저 애플리케이션에 대한 배포 매니페스트를 업데이트하고 서명할 수 있습니다.

    mage -update WindowsFormsApplication1.application -appmanifest WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -update ExcelAddin1.vsto -appmanifest ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -update WpfBrowserApplication1.xbap -appmanifest WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  6. 애플리케이션 및 배포 매니페스트 파일을 제외하고 파일에 .deploy 파일 확장자를 다시 추가합니다.

  7. 선택적으로 마스터 배포 매니페스트(publish\<appname>.application)를 버전 배포 디렉터리(publish\Application Files\<appname>_<version>)에 복사합니다.