2013-10-11 65 views
1

我有一個WiX msi包含在爲x86編譯的Burn包中。在微星我有這樣的代碼:

<?if $(var.Platform) = x64 ?> 
    <?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?> 
    <?else ?> 
    <?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?> 
    <?endif?> 

    <!-- directory structures --> 
    <Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="$(var.PlatformProgramFilesFolder)"> 
     <Directory Id="INSTALLFOLDER" Name="MyApp"> 
      <Directory Id="MyFolder" Name="MyFolder" /> 
     </Directory> 
     </Directory> 
    </Directory> 
    </Fragment> 

    <Fragment> 
    <ComponentGroup Id="MyComponents" Directory="MyFolder"> 
     <Component Id="MyComponent"> 
     <File Id="MyFile" Source="file.dat" Vital="yes" KeyPath="yes"/> 
     </Component> 
    </ComponentGroup> 
    </Fragment> 

我期望這將安裝到Program Files文件夾中的64位系統上,但它安裝到Program Files (x86)。這是因爲該軟件包是以32位運行的嗎?如果是這種情況,我該如何測試MSI中的實際操作系統架構?

+0

我遇到了完全相同的問題,我將-arch x64位傳遞給蠟燭,但仍然無法工作!你是如何解決它的? – Nikhil

回答

1

您需要一個64位軟件包才能寫入文件系統的64位部分。這是MSI的限制。