2010-01-29 6 views
5

Le projet sur lequel je travaille passe de l'utilisation du déploiement/installation VS2008 à WiX, pour laquelle je suis actuellement très nouveau. J'ai ajouté le code pour copier la sortie du projet de ressources dans Resources.dll, mais dans l'ancien système de fichiers de l'installateur VS2008 il y a aussi la sortie des ressources localisées qui produit actuellement deux foldes (en et es) avec un autre dll (Resources.resources.dll) pour chaque langue. J'ai eu un peu de recherche, mais je n'arrive pas à trouver la méthode pour obtenir ces dossiers dans le msi à moins de savoir que ces dossiers existent et les mettre directement. Quelle est la meilleure façon de faire cela?Comment inclure des assemblys satellites (ressources localisées) dans un MSI construit avec WiX?

Répondre

6

Définissez les éléments <Directory> de votre source Wix pour chacun des dossiers de localisation (en et es), puis définissez les éléments <Component> pour vos assemblages satellites.

En bref, mettez-les directement!

+0

+1 Merci pour le tuyau! J'ai créé une nouvelle réponse pour illustrer votre réponse. –

5

Voici ce qui a fonctionné pour moi, pour 2 langues.

I ajouté localeDirectoryFR et localeDirectoryJA comme on le voit ci-dessous, pour le japonais et le français:

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

Puis je les ai mentionnés dans les caractéristiques:

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

Merci à Paul Lalonde pour la pointe.

Questions connexes