Как включить спутниковые сборки (локализованные ресурсы) в MSI, созданный с помощью WiX? - PullRequest
5 голосов
/ 29 января 2010

Проект, над которым я работаю, переключается с использования развертывания / установки VS2008 на WiX, к которому я в данный момент очень плохо отношусь. Я добавил код для копирования выходных данных проекта resources в Resources.dll, но в старой файловой системе установщика VS2008 есть также вывод локализованных ресурсов, который в настоящее время создает две папки (en и es) с другой dll в ( Resources.resources.dll) для каждого языка. У меня был небольшой поиск, но, похоже, я не могу найти способ получить эти папки в MSI, если не знать, что эти папки существуют, и положить их прямо. Какой лучший способ сделать это?

Ответы [ 2 ]

6 голосов
/ 01 февраля 2010

Определите <Directory> элементы в вашем источнике Wix для каждой из папок локализации (en и es), затем определите <Component> элементы в них для ваших спутниковых сборок.

Короче говоря, вставь их прямо!

5 голосов
/ 04 февраля 2013

Вот что у меня сработало, для 2 языков.

Я добавил localeDirectoryFR и localeDirectoryJA, как показано ниже, для французского и японского языков:

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

Тогда я ссылался на них в функции:

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

Спасибо Полу Лалонде за подсказку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...