2011-01-27 43 views
2

我構建了一個簡單的安裝程序,將文件複製到Program Files下的文件夾中。儘管將組件定義爲Win64並將目錄定義爲ProgramFiles64Folder,但MSI在運行時會更改安裝路徑。我跑它使用詳細的日誌模式,我得到以下信息幫助:WiX ProgramFiles64Folder的行爲與ProgramFilesFolder(x86)相似

WIN64DUALFOLDERS: 'C:\Program Files (x86)\' will substitute 17 characters in 'C:\Program Files\' folder path. (mask argument = 0, the folder pair's iSwapAttrib member = 0). 

下面是我的代碼段(使用註冊表來填充INSTALLDIR)

<Property Id="INSTALLDIR"> 
    <RegistrySearch 
    Id="AsteaRegistryKeys" 
    Type="raw" 
    Root="HKLM" 
    Key="Software\MyCompany\1.0\MyApplication" 
    Name="InstallDir" /> 
</Property> 
<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFiles64Folder"> 
    <Directory Id="MyCompany"> 
      <Directory Id="INSTALLDIR"> 
     <Component 
        Id="MainExecutable" 
        Guid="1537B67F-6D49-4bbc-89DC-20A1FB7E07E0" Win64="yes"> 
     <File 
      Id="EXE" 
      Name="MyApp.exe" 
      DiskId="1" 
      Source="Source_Bin\MyApp.exe" 
      KeyPath="no" /> 
      </Directory> 
     </Directory> 
    </Directory> 
</Directory> 

回答

1

這是椅子和鍵盤之間的問題。我將包平臺錯誤地定義爲「ia64」而不是「x64」。問題解決了!

+2

你的回答讓我微笑:) – 2011-01-28 09:53:27