2010-04-17 16 views
5

Ho un file defines.wxi che contiene alcune buone definizioni utilizzate in tutti i miei file wxs.WiX: definizione del file incluso non disponibile dal file-frammento wxs

Quando tento di fare riferimento al valore definito da uno dei file <Fragment>, ottengo di nuovo Undefined preprocessor variable '$(var.IMAGE_FOLDER)' in faccia.

Immagino ci sia qualcosa di banale che mi manca qui ... Qualche idea?

Modifica 19: aprile.
Trovato che il problema si verifica solo se il riferimento da un file-Fragment.
Ri-scritto campione per abbinarlo.


defines.wxi

<Include> 
    <?define IMAGE_FOLDER="Images" ?> 
</Include> 

some-Fragment.wxs

<Fragment> 
    <?Include defines.wxi ?> 

    <Component Id='c.Images' Guid=".." Directory='INSTALLDIR.Images' > 
    <File Id='f.sample.jpg' Source='$(var.IMAGE_FOLDER)sample.jpg' Name='sample.jpg' /> 
    </Component> 
+0

funziona per me ... –

+0

hanno scoperto che l'esempio precedente è stato quello di simplified.issue solo si verifica se di riferimento da un frammento-file. Ri-scritto campione per abbinarlo. – leiflundgren

risposta

5

Risolto.

Laddove nel campione dice:

<?Include defines.wxi ?> 

dovrebbe essere minuscolo ...

<?include defines.wxi ?> 

allora funziona come un fascino!

/L

0

Nel testo del messaggio di errore che hai fornito si dice " 'variabile $ preprocessore non definita (Var. MAGE_FOLDER) "", non $ (var. IMAGE_FOLDER) - manca il numero "I". Questo mi ha fatto pensare che tu abbia fatto riferimento alla stessa variabile da qualche parte nel resto del tuo codice, ma l'hai sbagliato a scrivere.

In questo caso, candle.exe ha assolutamente ragione: può trovare IMAGE_FOLDER, ma non può trovare MAGE_FOLDER.

Spero che sia così e lo risolverai rapidamente. ;-)

+0

Grazie, ma era veramente IMAGE_FOLDER nel messaggio di errore. Il tyop era nella domanda. – leiflundgren

1

Ok, un'altra prova. Fa riferimento a qualcosa in quello <Fragment/> dal numero <Product/> principale? I contenuti del frammento sono visibili al resto del codice nel caso in cui si faccia riferimento a qualcosa da esso. Ad esempio, è possibile fare riferimento a un componente (<ComponentRef/>) oa un gruppo di componenti (<ComponentGroupRef/>). Una volta che qualsiasi cosa è referenziata, l'intero frammento è incluso.

Spero che questo aiuti.

+0

Perché sì. Nella mia caratteristica principale in Prodotto ho un ComponentRef al mio componente c.Images. Tuttavia, non penso che siamo arrivati ​​così lontano. Il messaggio di errore proviene dalla candela del compilatore WiX, non dal linker. Quindi WiX ritiene che si tratti di un errore pre-processore. – leiflundgren

+0

Sì, è vero ... ho finito le idee ... Hai provato ad aggiornare a RTX WiX 3.0 se non lo stai usando? –

Problemi correlati