2010-01-29 10 views
5

Il progetto su cui sto lavorando sta passando dall'utilizzo della distribuzione/installazione VS2008 a WiX, che sono attualmente molto nuovo. Ho aggiunto il codice per copiare l'output del progetto risorse in Resources.dll, ma nel vecchio file system del programma di installazione VS2008 c'è anche l'output di risorse localizzate che attualmente produce due pieghe (en ed es) con un'altra dll in (Resources.resources.dll) per ogni lingua. Ho avuto un po 'di ricerca, ma non riesco a trovare il metodo per far sì che queste cartelle nel MSI non sappiano realmente che quelle cartelle esistono e le inseriscono direttamente. Qual è il modo migliore per farlo?Come includere gli assembly satellite (risorse localizzate) in un MSI costruito con WiX?

risposta

6

Definire <Directory> elementi nella vostra fonte Wix per ciascuna delle cartelle di localizzazione (it e es), quindi definire <Component> elementi all'interno di loro per il vostro assembly satellite.

In breve, mettili dentro!

+0

+1 Grazie per il suggerimento! Ho creato una nuova risposta per illustrare la tua risposta. –

5

Ecco cosa ha funzionato per me, per 2 lingue.

ho aggiunto localeDirectoryFR e localeDirectoryJA come si vede qui sotto, per il giapponese e francese:

<Directory Id='TARGETDIR' Name='SourceDir'> 
    <Directory Id='ProgramFilesFolder' Name='PFiles'> 
     <Directory Id='INSTALLDIR' Name='CmisSync'> 
     <Component Id='CmisSync.exe' Guid='bab5a922-b5c4-4958-ab79-5e303b767a61'> 
      <File Id='CmisSync.exe' Name='CmisSync.exe' Source='!(wix.root)\bin\CmisSync.exe' KeyPath='yes' DiskId='1' /> 
     </Component> 
     [... other components ...] 
     <Directory Id='localeDirectoryFR' Name='fr'> 
      <Component Id='localeComponentFR' Guid='01612d5d-6c9d-46e9-96c5-7105bbbea7db'> 
      <CreateFolder /> 
      <File Id='localeFileFR' Name='CmisSync.resources.dll' Source='!(wix.root)\bin\fr\CmisSync.resources.dll' DiskId='1' /> 
      </Component> 
     </Directory> 
     <Directory Id='localeDirectoryJA' Name='ja'> 
      <Component Id='localeComponentJA' Guid='8d77c457-54b0-41d6-9f1c-c91338b25505'> 
      <CreateFolder /> 
      <File Id='localeFileJA' Name='CmisSync.resources.dll' Source='!(wix.root)\bin\ja\CmisSync.resources.dll' DiskId='1' /> 
      </Component> 
     </Directory> 

Poi li ho fatto riferimento nella funzione:

<Feature Id='CmisSyncFeature' Title='CmisSync' Description='CmisSync' Level='1' AllowAdvertise='no'> 
    <ComponentRef Id="CmisSync.exe" /> 
    [... other componentrefs ...] 
    <ComponentRef Id="localeComponentFR" /> 
    <ComponentRef Id="localeComponentJA" /> 
</Feature> 

Grazie a Paul Lalonde per la punta.

Problemi correlati