소스 코드에서 MSIX Core를 사용하여 MSIX 패키지 만들기

MSIX Core 는 MSIX 배포를 통해 이전 버전의 Windows를 선택합니다. MSIX Core 설치 관리자를 활용하여 ClickOnce를 사용하여 애플리케이션을 만들 수 있습니다. 이렇게 하면 사용자가 setup.exe를 다운로드하고 MSIX Core 설치 관리자를 통해 MSIX 앱을 설치할 수 있습니다.

웹 서버에서 앱 호스트

MSIX Core 설치 관리자를 사용하여 앱을 부트스트래핑할 준비를 하려면 웹 서버에서 앱 패키지를 호스트해야 합니다. 이 섹션에서는 Azure, IIS(인터넷 정보 서비스) AWS(Amazon Web Services)에서 웹앱을 설정하는 방법에 대해 자세히 설명합니다.

Azure

이 옵션을 사용하려면 Azure 구독이 있어야 합니다. 하나를 가져오려면 Azure 계정 페이지를 참조 하세요.

Azure 웹앱 만들기

시작하려면 Azure Portal 페이지 로 이동하여 다음 단계를 수행합니다.

  1. 리소스 만들기를 클릭합니다.
  2. 을 클릭하고 웹앱을 선택합니다.
  3. 인스턴스 세부 정보에서 고유한 앱 이름을 만들고 앱에 적절한 설정을 선택합니다. 예를 들어 코드 또는 Docker 컨테이너런타임 스택에서 선택해야 합니다. 그렇지 않으면 다른 모든 항목은 기본값으로 둡니다.
  4. 만들기를 클릭하고 마법사를 마칩니다.

앱 패키지 및 웹 페이지 호스트

  1. 웹앱을 만든 후 앱을 선택합니다.
  2. 개발 도구에서 App Service 편집기를 클릭합니다.
  3. 편집기에서 기본 hostingstart.html 파일이 있습니다. 파일 탐색기 빈 공간을 마우스 오른쪽 단추로 클릭하고 파일 업로드를 선택하여 앱 패키지 업로드를 시작합니다.
  4. 파일 탐색기 패널의 빈 공간을 마우스 오른쪽 단추로 클릭하고 새 파일을 선택하여 새 파일을 만듭니다. 파일의 이름을 기본 HTML 페이지로 지정합니다.

앱 패키지 MIME 형식에 대한 웹앱 구성

Web.config라는 새 파일을 웹앱에 추가합니다. Web.config 파일을 열고 파일에 다음 XML을 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <!--This is to allow the web server to serve resources with the appropriate file extensions-->
    <staticContent>
      <mimeMap fileExtension=".appx" mimeType="application/appx" />
      <mimeMap fileExtension=".msix" mimeType="application/msix" />
    </staticContent>
  </system.webServer>
</configuration>

IIS(인터넷 정보 서비스)

IIS는 선택적 Windows 기능입니다. IIS를 설치하려면 다음을 수행합니다.

  1. 시작을 클릭하고 Windows 기능 켜기 또는 끄기를 검색합니다.
  2. 인터넷 정보 서비스 선택합니다.
  3. 또한 ASP.NET 4.5 이상 설치해야 합니다. Windows 기능 대화 상자에서 인터넷 정보 서비스 ->World Wide Web Services ->Application Development Features를 확장하고 ASP.NET 4.5보다 크거나 같은 ASP.NET 버전을 선택합니다.
  4. 확인을 클릭하여 설치를 시작합니다.

Visual Studio 2017 이상 버전 및 웹 개발 도구가 필요합니다. Visual Studio 2017 이상 버전이 이미 설치된 경우 ASP.NET 및 웹 개발 워크로드가 설치되어 있는지 확인합니다. 그렇지 않으면 여기에서 Visual Studio를 설치합니다.

웹앱 만들기

관리자 권한으로 Visual Studio를 시작하고 빈 프로젝트 템플릿을 사용하여 새 Visual C# 웹 애플리케이션 프로젝트를 만듭니다.

웹앱을 사용하여 IIS 구성

  1. 솔루션 탐색기 루트 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
  2. 속성에서 웹 탭을 선택합니다.
  3. 서버 섹션의 드롭다운 메뉴에서 로컬 IIS를 선택하고 가상 디렉터리 만들기를 클릭합니다.

웹 애플리케이션에 앱 패키지 추가

웹 애플리케이션에 배포하려는 앱 패키지를 추가합니다.

  1. 솔루션 탐색기 프로젝트 노드를 마우스 오른쪽 단추로 클릭합니다.
  2. 새 폴더 추가를> 선택하고 폴더패키지의 이름을 지정합니다.
  3. 폴더에 앱 패키지를 추가하려면 패키지 폴더를 마우스 오른쪽 단추로 클릭하고 기존> 항목 추가를 선택합니다. 앱 패키지 위치로 찾습니다.

웹 페이지 만들기

필요에 따라 HTML 페이지 또는 다른 웹앱을 만듭니다. 새 setup.exe의 링크를 추가합니다.

앱 패키지 MIME 형식에 대한 웹앱 구성

솔루션 탐색기에서 Web.config 파일을 열고 구성> 요소 내에 다음 XML을 <추가합니다.

<system.webServer>
  <!--This is to allow the web server to serve resources with the appropriate file extensions-->
  <staticContent>
    <mimeMap fileExtension=".appx" mimeType="application/appx" />
    <mimeMap fileExtension=".msix" mimeType="application/msix" />
  </staticContent>
</system.webServer>

Amazon Web Services(AWS)

이 옵션을 사용하려면 AWS 멤버 자격이 있어야 합니다. 자세한 내용은 AWS 계정 세부 정보를 참조하세요.

Amazon S3 버킷 만들기 및 MSIX 패키지 및 웹 페이지 업로드

Amazon S3(Simple Storage Service)는 데이터를 수집, 저장 및 분석하기 위한 AWS 제품입니다. S3 버킷은 배포를 위해 Windows 10 앱 패키지 및 웹 페이지를 호스트하는 편리한 방법입니다.

  1. AWS에 로그인합니다. 서비스에서 S3을습니다.
  2. 버킷 만들기를 선택하고 웹 사이트의 버킷 이름을 입력합니다. 대화 상자 프롬프트에 따라 속성 및 사용 권한을 설정합니다. Windows 10 앱을 웹 사이트에서 배포할 수 있도록 하려면 버킷에 대한 읽기 및 쓰기 권한을 사용하도록 설정하고 이 버킷에 대한 공용 읽기 권한 부여를 선택합니다. 버킷 만들기를 클릭하여 이 단계를 완료합니다.
  3. 완료되면 MSIX 패키지 및 웹 페이지를 S3 버킷에 업로드합니다.

앱 패키지 MIME 형식에 대한 웹앱 구성

S3 브라우저와 같은 웹 서비스 인터페이스를 사용하여 새 기본 HTTP 헤더를 추가합니다.

  1. 도구로 이동하고 기본 HTTP 헤더를 선택합니다.
  2. 기본 HTTP 헤더 대화 상자에서 추가를 클릭합니다.
  3. 새 기본 HTTP 헤더 추가 대화 상자에서 버킷 이름, 파일 이름, 헤더 이름 및 헤더 값을 지정한 다음 새 헤더 추가를 클릭합니다.
    • 버킷 이름: msix-packages
    • 파일 이름: *.msix
    • 헤더 이름: Content-Type
    • 헤더 값: application/msix

참고 항목

 AWS에는 따라야 할 몇 가지 엄격한 지침이 있습니다. 예를 들어 버킷 이름은 고유해야 하므로 위의 예제를 사용하는 경우 버킷 이름을 변경해야 합니다.

MSIX Core 설치 관리자를 사용하여 ClickOnce 애플리케이션 빌드

애플리케이션 애플리케이션 ClickOnce setup.exe를 찾습니다. 이는 Git 프로젝트의 복제본을 참조하고 Visual Studio 프로젝트를 통해 빌드 및 게시합니다.

URL 명령을 실행하여 새 setup.exe 만들기

지침에 따라 Visual Studio에서 MSIX Core 솔루션을 복제, 빌드 및 게시했는지 확인합니다. 참고로 GitHub 프로젝트는 여기에서 찾을 수 있습니다.

setup.exe 파일을 게시한 디렉터리로 이동한 다음, 다음 명령을 실행합니다.

.\setup.exe -url=<location of your msix in the webservice>

예를 들면 다음과 같습니다.

.\setup.exe -url="https://appinstallerdemo.azurewebsites.net/MSIXCore/msixmgrWrapper.application?https://appinstallerdemo.azurewebsites.net/MSIXCore/notepadplus.msix#"

애플리케이션 서명

이전 단계에서 새 setup.exe를 만들었으므로 애플리케이션의 신뢰할 수 있는 게시자인지 확인하고 애플리케이션의 무결성을 설정하려면 앱에 다시 서명해야 합니다. SignTool사용하고 인증서를 제공할 수 있습니다.

사용자에게 애플리케이션 배포

이제 웹 사이트에서 링크 또는 다운로드 단추를 사용하여 새 setup.exe를 가리킬 수 있습니다. MSIX Core는 Windows 10 버전 1703 이하의 사용자를 대상으로 합니다. 앱 설치 관리자는 Windows 1709 이상 버전의 MSIX 패키지에 적합한 설치 프로세스입니다. 앱 설치 관리자는 소비자 쪽의 디스크 공간을 최적화하고 HTTP 위치에서 앱을 직접 설치할 수 있습니다. MSIX Core는 소비자가 Windows 1709 이상 버전에 있는지 감지하고 앱 설치 관리자로 리디렉션합니다.

Microsoft Edge에서 getHostEnvironmentValue() 메서드를 호출할 수 있으며 반환 값의 os-build 필드는 사용자의 OS 버전을 지정합니다. 여기에서 MSIX Core(Windows 10 버전 1703 이하) 또는 앱 설치 관리자(Windows 10 버전 1709 이상)를 사용하도록 설치 프로세스에 프롬프트를 표시할 수 있습니다.

사용자 환경

사용자는 개발자의 웹 페이지에서 setup.exe를 다운로드하고 실행하기만 하면 됩니다.

  • 사용자가 setup.exe를 실행할 때 MSIX Core 설치 관리자가 아직 설치되지 않은 경우 사용자는 ClickOnce 프롬프트를 보고 설치를 클릭하여 MSIX Core 설치 관리자를 설치합니다. 설치 관리자는 사용자가 앱을 설치할 수 있도록 개발자의 쿼리 문자열에 지정된 MSIX 패키지의 설치 화면을 자동으로 시작하고 표시합니다.
  • 사용자가 setup.exe를 실행할 때 MSIX Core 설치 관리자가 이미 설치되어 있으면 MSIX Core 설치 관리자가 자동으로 시작되고 사용자가 앱을 설치할 수 있도록 쿼리 문자열에 지정된 MSIX 패키지의 설치 화면이 표시됩니다.