installview, progressview, finishview, uninstallview 등과 같은 다른보기의 흐름에서 작동하는 사용자 정의 된 UI를 사용하고 있습니다. 사용자 정의 설치 프로그램에는 두 가지 옵션이 있습니다. 설치 디렉토리 및 기타 데이터베이스 디렉토리를 변경합니다. 내 사용자 지정 설치 관리자는 두 msi를 포함합니다. msi에 데이터베이스 디렉토리를 전달하려고 할 때마다 넘어지지 않습니다. 항상 기본 경로를 사용합니다.Wix 사용자가 디렉토리를 덮어 쓸 수 없습니다.
내 사용자 지정 설치 관리자는 overimable 인 데이터베이스에 대한 변수를 포함하고이 값을 msi로 전달합니다.
<Variable Name="DatabaseFolder" bal:Overridable="yes" Type="string" Value="[CommonAppDataFolder]$(var.ManufacturerName)\$(var.ProductName)" />
<MsiPackage Id="StorageApp"
DisplayInternalUI="no"
DisplayName="$(var.StorageApp)"
Permanent="no"
Visible="yes"
Vital="yes"
SourceFile="$(var.StorageAppExe)"
Compressed="yes">
<MsiProperty Name="DATABASEAPPDATAFOLDER" Value="[DatabaseFolder]" />
</MsiPackage>
기본적으로 DatabaseProductName은 디렉토리 이름으로 사용됩니다. 하지만 내가 디렉토리를 변경하면 항상 기본 경로를 사용합니다. 왜 나는 기본값을 초과 할 수 없었습니다. 내 코드에 누락 된 것이 있습니까? 당신이 무슨 뜻인지
<DirectoryRef Id="TARGETDIR">
<Directory Id="CommonAppDataFolder">
<Directory Id="CompanyAppDataFolder" Name="$(var.DatabaseManufacturerName)">
<Directory Id="DATABASEAPPDATAFOLDER" Name="$(var.DatabaseProductName)">
</Directory>
</Directory>
</Directory>
</DirectoryRef>