2013-09-05 15 views
10

Çözümümün platformu ayarı "Herhangi CPU" ile inşa edilmiştir. WiX 3.6 yükleyici proje ayarlarım için, hedef platformu "x64" olarak ayarlayamıyorum; sadece "x86" mevcuttur. WiX projesi x64'ü hedefleyecek şekilde oluşturulabilir mi?WiX 3.6 proje x64'ü hedefliyor mu?

cevap

21

, Windows montajcılar yükleyici iki yapılandırmaları x86 ve x64 sahip iken yönetilen kod, herhangi bir CPU ayarlı edilir, ben genellikle iki kez inşa Herhangi CPU hedef inşa edilemez. Sen yapılandırmalar oluşturmak için ihtiyaç bulabilirsiniz

, bu daha sonra platform altında açılan seçme çözüm üzerinde sağ tıklayarak ve seçerek yapılandırma yöneticisi tarafından yapılabilir. Eğer tam olduğunuzda size wixproj tanımlanan aşağıdaki görmek mümkün olmalıdır:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> 
    <OutputPath>bin\$(Configuration)\</OutputPath> 
    <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath> 
    <DefineConstants>Debug</DefineConstants> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> 
    <OutputPath>bin\$(Configuration)\</OutputPath> 
    <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' "> 
    <DefineConstants>Debug</DefineConstants> 
    <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath> 
    <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> 
    <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath> 
    <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath> 
    </PropertyGroup> 

yükleyici hem x86 ile çalışmak ve x64 algılamak ve yükleyin mimarisini ayarlamak için değişkenleri tanımlamak izin vermek için.

<?if $(var.Platform) = x64 ?> 
<?define bitness = "(64 bit)" ?> 
<?define Win64 = "yes" ?> 
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?> 
<?else ?> 
<?define bitness = "(32 bit)" ?> 
<?define Win64 = "no" ?> 
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?> 
<?endif ?> 

Ben görsel bir ipucu olarak adını bitness değişkeni ekleyin:

<Product Name="My Install $(var.bitness)" 

uygun Program Files Klasör bakınız:

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="$(var.PlatformProgramFilesFolder)"> 

Bileşenleri Win64 bayrağı gerektiği şekilde ayarlanmalıdır:

<Component Win64="$(var.Win64)" 
+0

Merhaba @David Martin, teşekkürler, bu x86 ve x64 için iki ayrı MSI oluşturmam gerektiği anlamına mı geliyor? – sean717

+0

@ sean717 Evet, her ikisini de önyüklemeli bir exe'ye koyabilirsiniz. Ama bu çözümünüzü uygulamak çalışıyorum @DavidMartin –

+0

:-) farklı bir soru, ama algılayıp yüklemek mimarisini ayarlamak ot değişkenleri tanımlamak kod katmak gereken yerde emin değilim. What Bunu hangi dosyaya koymalıyım? daniegarcia254 Bunlar @ – daniegarcia254