다시 서명하지 않고 테스트 및 프로덕션 서버용 ClickOnce 애플리케이션 배포

이 문서에서는 ClickOnce 매니페스트를 다시 서명 하거나 변경하지 않고도 여러 네트워크 위치에서 ClickOnce 애플리케이션을 배포할 수 있게 하는, .NET Framework 버전 3.5에 도입된 ClickOnce 기능에 대해 설명합니다.

참고

하지만 새 버전의 애플리케이션을 배포하는 데 선호되는 방법은 여전히 다시 서명하기입니다. 가능하다면 언제든 다시 서명 방법을 사용하세요. 자세한 내용은 Mage.exe(매니페스트 생성 및 편집 도구)를 참조하세요.

타사 개발자 및 ISV는 이 기능을 옵트인하여 고객이 애플리케이션을 더 쉽게 업데이트하게 할 수 있습니다. 이 기능은 다음 상황에서 사용할 수 있습니다.

  • (애플리케이션 최초 설치가 아닌) 애플리케이션을 업데이트하는 경우.

  • 컴퓨터에 애플리케이션 구성이 하나만 있는 경우. 예를 들어 애플리케이션이 서로 다른 두 데이터베이스를 가리키도록 구성된 경우에는 이 기능을 사용할 수 없습니다.

배포 매니페스트에서 deploymentProvider 제외

.NET Framework 2.0 및 .NET Framework 3.0에서는 오프라인 가용성을 위해 시스템에 설치하는 모든 ClickOnce 애플리케이션은 자체 배포 매니페스트에 deploymentProvider를 나열해야 합니다. deploymentProvider는 업데이트 위치라고도 하며, ClickOnce가 애플리케이션 업데이트를 확인하는 위치입니다. 이 요구 사항과 애플리케이션 게시자가 자신의 배포에 서명해야 한다는 점 때문에, 회사는 공급업체나 타사가 제공한 ClickOnce 애플리케이션을 쉽게 업데이트할 수 없습니다. 또한 동일한 네트워크의 여러 위치에 동일한 애플리케이션을 배포하기가 어렵습니다.

.NET Framework 3.5에서 ClickOnce에 적용된 변경 사항을 이용하면 타사는 ClickOnce 애플리케이션을 다른 조직에 제공할 수 있으며, 조직은 이 애플리케이션을 자체 네트워크에 배포할 수 있습니다.

이 기능을 이용하려면 ClickOnce 애플리케이션 개발자는 자체 배포 매니페스트에서 deploymentProvider를 제외해야 합니다. 이 요구 사항은 Mage.exe을 이용해 배포 매니페스트를 만들 때 -providerUrl 인수를 제외해야 함을 의미합니다. MageUI.exe를 이용해 배포 매니페스트를 만드는 경우에는 애플리케이션 매니페스트 탭의 시작 위치 텍스트 상자가 비어 있는지 확인해야 합니다.

참고 항목

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

deploymentProvider 및 애플리케이션 업데이트

.NET Framework 3.5부터는 배포 매니페스트에서 deploymentProvider를 지정하지 않아도 ClickOnce 애플리케이션을 배포하여 온라인과 오프라인 모두에서 사용할 수 있습니다. 이 변경 사항은 배포를 직접 패키지하고 서명해야 하지만 상황에 적용되지만, 다른 회사는 자체 네트워크를 통해 애플리케이션을 배포할 수 있습니다.

가장 중요한 점은 deploymentProvider를 배제하는 애플리케이션은 deploymentProvider 태그를 포함하는 업데이트를 다시 제공하기 전에는 업데이트 중에 설치 위치를 변경할 수 없다는 사실입니다.

쉽게 이해할 수 있도록 두 가지 예제를 제시하겠습니다. 첫 번째 예제에서는 deploymentProvider 태그가 없는 ClickOnce 애플리케이션을 게시하며, 사용자에게 http://www.adatum.com/MyApplication/에서 애플리케이션을 설치하도록 요청합니다. http://subdomain.adatum.com/MyApplication/에서 애플리케이션의 다음 업데이트를 게시하기로 했다면, http://www.adatum.com/MyApplication/에 있는 배포 매니페스트에서 이를 나타낼 수 없습니다. 다음 두 가지 작업 중 하나를 수행할 수 있습니다.

  • 사용자에게 이전 버전을 제거하도록 지시하고 새 위치에서 새 버전을 설치합니다.

  • http://www.adatum.com/MyApplication/을 가리키는 deploymentProvider가 포함된 http://www.adatum.com/MyApplication/의 업데이트를 포함합니다. 그런 다음 http://subdomain.adatum.com/MyApplication/을 가리키는 deploymentProvider를 사용하여 나중에 다른 업데이트를 릴리스합니다.

    두 번째 예제에서는 deploymentProvider를 지정하는 ClickOnce 애플리케이션을 게시한 다음 제거합니다. deploymentProvider가 없는 새 버전을 클라이언트에 다운로드했다면, deploymentProvider가 복원된 애플리케이션 버전을 릴리스하기 전에는 업데이트에 사용한 경로를 리디렉션할 수 없습니다. 첫 번째 예제에서처럼 deploymentProvider는 처음에는 새 위치가 아닌 현재 업데이트 위치를 가리켜야 합니다. 이 경우 http://subdomain.adatum.com/MyApplication/을 참조하는 deploymentProvider를 삽입하려고 하면 다음 업데이트가 실패하게 됩니다.

배포 만들기

다양한 네트워크 위치에서 배포할 수 있는 배포를 만드는 방법에 대한 단계별 지침은 연습: 다시 서명할 필요가 없으며 브랜딩 정보를 유지하는 ClickOnce 애플리케이션을 수동으로 배포를 참조하세요.