Come faccio a includere assembly satellite (risorse localizzate) in un MSI costruite con WiX?

StackOverflow https://stackoverflow.com/questions/2162320

  •  23-09-2019
  •  | 
  •  

Domanda

Il progetto a cui sto lavorando è il passaggio di utilizzare il VS2008 distribuzione / installatore di WiX, che sono attualmente molto nuovo. Ho aggiunto il codice per copiare l'output del progetto risorse in resources.dll, ma nel vecchio sistema di file di installazione di VS2008 c'è anche l'uscita di risorse localizzate che attualmente produce due Foldes (it e es) con un'altra DLL in ( Resources.resources.dll) per ogni lingua. Ho avuto un po 'di una ricerca, ma non riesco a trovare il metodo di ottenere queste cartelle nel breve msi realmente di sapere che esistono tali cartelle e la loro messa in rettilineo. Qual è il modo migliore per fare questo?

È stato utile?

Soluzione

Definisci elementi <Directory> nell'origine Wix per ciascuna delle cartelle di localizzazione (it e es), quindi definire elementi <Component> al loro interno per i vostri assembly satellite.

In breve, li mise dritto!

Altri suggerimenti

Ecco che cosa ha funzionato per me, per 2 lingue.

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

<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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top