msiexec를 사용하여 MSI를 사용자 정의 디렉터리에 설치하는 방법은 무엇입니까?

msiexec를 사용하여 MSI를 사용자 정의 디렉터리에 설치하는 방법은 무엇입니까?

다음은 Windows 10의 관리 PowerShell을 .msi사용하여 설치하려는 시도입니다 .msiexec

나는 2개의 드라이브 각각에 대해 7번(총 14번)을 만들었고 C:대신 D:다른 인수를 사용하고 ARG동일한 바람직한 경로 값을 사용했습니다.

주형:PS C:\WINDOWS\system32> msiexec /i D:\users\username\downloads\soft\publisher\softwarename\software.msi /passive ARG="D:\Soft\publisher\softwarename"

ARG에스:

  • TARGETDIR, INSTALLDIR, INSTALLPATH, INSTALLFOLDER, INSTALLLOCATION, APPLICATIONFOLDER,APPDIR
    • D:\Blender Foundation\Blender\2.81\매개변수에 설정된 것과 동일한 드라이브에서 실행하는 경우: 이 드라이브의 기본 폴더(예 : ) 에 설치됩니다.
    • 다른 드라이브에서 실행할 때: 아무것도 하지 않는 것 같습니다.

이 문제에 대한 해결 방법이 있습니까?

업데이트 1

.msi이전 패키지가 잘못 빌드되었기 때문에 다른 패키지(Blender 2.81)에서 테스트했습니다 . 위에 나열된 인수 이름 중 어느 것도 트릭을 수행하지 못했습니다. 드라이브 에서의 모든 설치 D:C:.

업데이트 2

Blender 2.81 .msi의 경우 WiX. 설치 경로 인수의 이름을 알아내기 위해 INSTALL_ROOT시도할 수 있습니다 . 덕분에msiexec /lp! <msi_property_logfile> /i <msi_name>.msi엔포양그리고 그의 대답여기.

답변1

이것이 제대로 작동하려면 다음 단계를 수행해야 합니다.

  1. 설치 프로그램 에 사용된 공용 속성 목록을 가져옵니다 .msi.
    • PS >.\YourAppInstaller.msi /lp! YourAppInstall.log;
    • 설치를 취소합니다.
  2. .log이전 단계에서 생성된 파일 에서 공용 속성을 찾습니다 .
  3. .msi명령줄에서 공용 속성을 사용하여 실행합니다 .
    • 속성 값에 공백이 포함된 경우 역따옴표+따옴표 쌍( `") 으로 묶습니다.
    • 예:PS >.\YourAppInstaller.msi YOUR_PROP=`"value with spaces`"

Blender 자동 설치의 경우 설치 경로를 지정하려면 다음과 같이 설치 프로그램을 호출해야 합니다(예:).

.\blender-3.4.1-windows-x64.msi INSTALL_ROOT=`"C:\Program Files\Blender Foundation\Blender\`"

이렇게 하면 설치하려는 위치를 이해할 수 있습니다.

관련 정보