64bit 응용 프로그램을 설치 하는 설치 관리자 만들기

페이지 생성 날짜 :

환경

Visual Studio
  • Visual Studio Community 2017
  • Visual Studio Community 2019
WiX Toolset
3.11.2

※ 다른 버전 에서도 작동 하지만 미확인입니다

처음에

WiX에서는 명시적으로 지정 하지 않는 한은 32bit 응용 프로그램으로 설치 합니다. 예를 들면, 64bit OS에 설치 하면 「 C:\Program Files (x86) \ 」 폴더에 설치 됩니다.

여기에서는 64bit 응용 프로그램을 설치 하기 위한 설정에 대해 설명 합니다. 이미 WiX 프로젝트를 만들고 설치 관리자를 만들 수 있다고 합니다.

덧붙여 64bit 응용 프로그램을 설치 하 여도 32bit 프로그램 인지 64bit 프로그램 인지 포함 된 파일에 따라 달라 집니다 때문에, 어디 든 설치 쪽 설정 이라고 생각 합니다. 설치 프로그램을 64bit 운영 하는 것에 의해 명시적으로 32bit OS에서의 설치를 방지할 수 있습니다.

사전 준비

  • WiX 설치 만들 수 있다고 합니다.

프로젝트 만들기

신규로 64bit 설치 프로젝트를 만듭니다. 만약 32bit와 64bit 설치 관리자를 작성 해야 하는 경우 32bit는 다른 프로젝트로 분리 하는 편이 동시에 빌드할 수 있습니다.

image

image

image

프로젝트를 만든 후 32bit 판과 같이 프로젝트를 설정, 32bit 버전에서 만든 파일을 64bit의 프로젝트로 복사 합니다.

image

64bit 버전에서 필요한 파일은 거의 32bit 버전과 동일 하 게 파일을 공유 하는 방법도 있지만 설명이 조금 복잡 하 게 되어 버리기 때문에 이번에는 생략 합니다.

설치 프로젝트의 64bit 설정

64bit 응용 프로그램 설치 관리자를 만들려면 프로젝트 설정을 변경할 수 있으며, 다음의 A, B 두 가지 패턴을 설정 하면 OK입니다.

또 다른 패턴으로 Package의 Platform 특성에 x64를 지정 하는 방법이 있지만 현재 비 추천이 고 설정 해도 효과가 없으며 게다가 설치할 파일 마다 64bit 매개 변수를 설정 해야 하므로 비효율적 이므로 추천 하지 않습니다.

A. 프로젝트에 x64 플랫폼 추가

처음에는 프로젝트에 x86 빌드 구성 밖에 존재 하지 않기 때문에 x64를 추가 합니다.

메뉴에서 "빌드" 「 구성 관리자 」를 선택 합니다.

image

솔루션 구성을 Release에 두고 x64 프로젝트의 플랫폼에서 새로 만들기를 선택 합니다.

image

새 플랫폼을 「 x64 」 원본을 「 x86 」 새 솔루션 플랫폼을 만들 수 없도록 합니다.

image

추가한 후 다시 플랫폼을 엽니다. 편집을 선택 합니다. 덧붙여 x64 추가 직후 x64가 목록에 나타나지 않는 경우도 있지만 화면을 닫은 후 다시 표시 되 면 목록에 추가 될 수 있습니다.

image

WiX 프로젝트 결함 초기 선택이 x64 꺼지지 않고 x86 되어 버리는 현상이 있기 때문에 x86을 제거 합니다. 그러나 이것도 결함 x86 사라져도 부활 시킬 수 있습니다. 확실 하 게 제거 하 고 싶다면 프로젝트 파일 「 wixproj 」을 텍스트 편집기에서 해당 코드를 제거 하는 것이 좋습니다.

image

아래 그림과 같이 설정 하면 OK입니다. 오른쪽 위에 있는 활성 플랫폼이 x86에 계속 신경이 쓰이는 얼렁뚱땅 편집에서 이름을 변경 하십시오.

image

B. 컴파일 매개 변수에 「-arch x64 」을 추가

64bit 설치 프로젝트를 마우스 오른쪽 단추로 누르고 등록 정보를 엽니다.

image

왼쪽 탭에서 「 Tool Settings 」를 선택 하 고 구성을 「 Release 」로 변경. 「 Additional parameters "Compiler"에 "-arch x64 」를 입력 합니다.

image

대상 폴더를 64bit의 폴더로

Product.wxs를 엽니다.

다음 「 Directory Id = "ProgramFilesFolder" 」를 「 Directory Id = "ProgramFiles64Folder" 」로 바꿉니다.

<Wix>
	<Fragment>
		<Directory Id="TARGETDIR" Name="SourceDir">
			<Directory Id="ProgramFiles64Folder">

시작 메뉴에서 바로 가기 파일 이름 또는 폴더 이름 바꾸기

필수는 아니지만, 32bit의 설정을 그대로 복사 하면 32bit 프로그램과 64bit 프로그램 시작 메뉴 바로 가기가 앉아 버립니다.

필요에 따라 변경 하십시오.

<Wix>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFiles64Folder">
        <Directory Id="INSTALLFOLDER" Name="LittleSaviorTrial">
          <Component Win64="yes" Id="LITTLESAVIORTRIAL.EXE" DiskId="1" Guid="E382FBDF-73E0-4511-A73D-E9798449F30E">
            <File Id="LITTLESAVIORTRIAL.EXE" Name="LittleSaviorTrial.exe" Source="LittleSaviorTrial\LittleSaviorTrial.exe" KeyPath="yes">
              <Shortcut Id="LITTLESAVIORTRIAL.EXE_shortcut" Name="ここのファイル名を 64bit 版に変える" Directory="ProgramMenuDir" WorkingDirectory="INSTALLDIR" Icon="LITTLESAVIOR.ICO" IconIndex="0" Advertise="yes" />
  <!-- 中略 -->
  <Directory Id="ProgramMenuFolder">
    <Directory Id="ProgramMenuDir" Name="ここのフォルダ名を 64bit 版に変える">
      <Component Id="ProgramMenuDir" Guid="5A73CC85-A1B3-4409-8C4F-3E8E888A7167">
        <RemoveFolder Id="ProgramMenuDir" On="uninstall" />

Product.wxs 전체

이 상태에서 빌드를 실행 하 고 오류 없이 설치 관리자가 생성 된 것을 확인 하십시오. 64bit OS 환경에서 설치 후, 「 C:\Program Files\ 」에 폴더와 파일이 생성 되는지 확인 합니다.

image

또한, 32bit OS 환경에서 설치 하려고 할 때 오류가 발생 하는지 확인 합니다.

image