5

私が取り組んでいるプロジェクトは、VS2008デプロイメント/インストーラーの使用から、現在非常に新しいWiXに切り替えています。リソースプロジェクトの出力をResources.dllにコピーするコードを追加しましたが、古いVS2008インストーラーファイルシステムには、現在2つのフォールド(enとes)を生成するローカライズされたリソース出力もあります。各言語のResources.resources.dll)。少し検索しましたが、これらのフォルダーが存在することを実際に認識してまっすぐに入れる以外に、これらのフォルダーをmsiに入れる方法が見つからないようです。これを行うための最良の方法は何ですか。

4

2 に答える 2

6

<Directory>Wixソースで各ローカリゼーションフォルダー(enおよびes)の要素を定義し<Component>てから、サテライトアセンブリの要素を定義します。

要するに、それらをまっすぐに入れてください!

于 2010-02-01T13:10:12.263 に答える
6

これが私にとって、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>

情報を提供してくれたPaulLalondeに感謝します。

于 2013-02-04T07:31:50.293 に答える