2009-12-18 1 views
18

La seguente rigaErrore di compilazione - ICE80: La 64BitComponent ... utilizza 32BitDirectory

<Component Guid='{THE_GUID}' Id='GlobalScopePackages' > 

genera il seguente errore:

Error 4 ICE80: This 64BitComponent GlobalScopePackages uses 32BitDirectory blablabla c:\development\...\file.wxs 

errore è descritta in questa pagina http://msdn.microsoft.com/en-us/library/aa369034(VS.85).aspx

Come faccio a risolvere questo problema o sopprimere l'avviso? È sicuro semplicemente sopprimere l'avviso?

risposta

14

È anche possibile impostare Win64="no" nel tag <Component /> dei componenti che non sono 64 bit.

Ma posso confermare che puoi ignorarlo.

+0

Grazie per la conferma. –

+0

È davvero strano - in VS2010 ICE80 e simili si presentavano come avvertenze - ora si presentano come errori? – BrainSlugs83

3

Sicuro per sopprimere solo l'avviso.

47

Desidero un programma di installazione a 64 bit (come per la configurazione di rilascio), quindi ho utilizzato <Directory Id="ProgramFiles64Folder"> anziché ProgramFilesFolder come parte del percorso di installazione di destinazione.

Questo articolo fornisce ulteriori informazioni: How to: Create the Windows Installer Package for 64-bit Client Computers

+4

Per me questa dovrebbe essere la risposta corretta –

+1

Questa è la risposta corretta alla domanda. – floatingfrisbee

+0

Bene, non funzionerà comunque con le macchine a 32 bit. (È il modo previsto di farlo, ma impone la limitazione irragionevole che ora è necessario creare due programmi di installazione separati, uno per 32 bit e uno per 64 bit, anche se gli assembly sono tutti compilati come "Qualsiasi CPU".) - È possibile * creare un singolo programma di installazione basato su WiX che installa i file nella cartella corretta (utilizzando un attributo Win64 dinamico, ecc.) Per i sistemi a 32 bit e 64 bit, ma richiede di sopprimere il Avviso ICE80. – BrainSlugs83

1

stavo ottenendo questo errore oggi e ha scoperto che il progetto di installazione è stato impostato per costruire come x64. Tutti gli altri progetti erano Any CPU. Volevo solo un installer x86, quindi cambiare semplicemente Platform to x86 mi ha risolto il problema.

Ovviamente se si desidera un programma di installazione basato su x64, una delle risposte sopra risolverà il problema.

0

Se qualcuno tenta di automatizzare il processo di creazione "componente" utilizzando HEAT, non è disponibile alcun interruttore (fino alla V3.10) per includere Win64 = sì/no.

Utilizzare l'opzione -arch x64 con Candle risolverà questo problema.