1

マージ モジュール ファイルを 2 つの異なる場所に解析したいと考えています。出来ますか?

    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="MergeRedirectFolder">

        <Component Id="LoggerClient" Guid="*">
          <File Id="log4net" Name="log4net.dll" Source="..\..\_Release\log4net.dll" KeyPath='yes' />
          <File Id="LoggerLibrary" Name="LoggerLibrary.dll" Source="..\..\_$(var.Configuration)\LoggerLibrary.dll" />
          <File Id="app.config" Name="app.config.xml" Source="..\..\_Release\app.config.xml" />
          <File Id="msvcr110.dll" Name="msvcr110.dll" Source="c:\windows\sysWoW64\msvcr110.dll" />
        </Component>

  </Directory>
    </Directory>
</Module>



<Merge Id ="MergeModule.msm" Language ="!(loc.Lang)" SourceFile ="_$(var.Configuration)\MergeModule.msm" DiskId ="1" />

2 番目のファイルを他のファイルとは別のフォルダーにコピーする必要があります。

4

4 に答える 4

1

そのための概念があり、 retargetable merge moduleと呼ばれます。私はそれを使用することを避けてきました - 概念は私には正しくないようです. Wixで作成しようとしたことはありません。

必要に応じて Include ステートメントを追加することで、Wix インクルード ファイル (単純なサ​​ンプル) を新しい自動生成されたコンポーネント GUIDと組み合わせて、そのような複製ファイルを確実に展開できると思います。この場合、GUID をハードコーディングしてはいけませんが、Wix コンパイラとリンカーによって自動生成されます。

WixLibs (Wix ライブラリ ファイル)も読んでください: http://robmensching.com/blog/posts/2008/10/10/what-are-.wixlibs-and-why-would-you-use-them/

Wix ドキュメント; http://wixtoolset.org/documentation/manual/v3/overview/files.html

于 2015-05-05T09:51:37.543 に答える
0

マージ モジュールは、一般的なランタイム実際に共有されているファイルをインストールするためのものです。通常、C および C++ ランタイム、およびすべてのアプリケーションの最新バージョンで利用できるその他の同様のライブラリ。

ファイルはアプリケーション フォルダーの一部のように見えますがmsvcr110.dll除いて、システム フォルダーから削除してロードできるようにする必要があります

残りのファイルにコンピューターごとの登録がない場合 (COM や COM Interop など)、干渉することなく複数のフォルダーにそれらを複製できますが、独自のアプリケーション フォルダー構造内の共有場所からそれらを読み込んでみませんか?

  • %ProgramFiles%\My Company\My Shared Runtimes
  • %ProgramFiles%\My Company\My Apps\My App 1\
  • %ProgramFiles%\My Company\My Apps\My App 2\

これらのサンプル フォルダはあなたが「所有」しており、好きなようにここにデプロイできます。共有システム フォルダの場合はそうではありません。アプリケーション間の共有コンポーネント用の独自のマージ モジュールを「My Shared Runtimes」に作成し、アプリケーションに共有場所「....\MySharedRuntimes\」を認識させることができます。

于 2015-05-05T08:23:31.197 に答える
0

それは、さまざまな場所が何を意味するかによって異なります。それぞれ独自のコンポーネントとディレクトリにある 4 つのファイルでマージ モジュールを構築できます。CommonFilesFolder に移動できます。もう 1 つを SystemFolder に。別の...あなたはアイデアを得る。そのため、各ファイルを独自のディレクトリで独自のコンポーネントにすると、潜在的に簡単になります。ただし、それらはすべて TARGETDIR の下にあるため、間違った方向に進んでいます。他のディレクトリと、その他のコンポーネントとファイルを定義するだけで、見た目以上の質問がない限り、完了する可能性があります。

于 2015-05-05T18:49:40.400 に答える
-1

MSI、コンポーネント ルール、マージ モジュール、およびファイル セット理論に関する 30 ~ 60 分間の会話について、個人的に私に連絡することをお勧めします。書きすぎです。一言で言えば、マージ モジュールを増やすことをお勧めします。

于 2015-05-05T15:20:13.530 に答える