KeyPath="yes" と Assembly=".net" を Wix XML ファイルの DLL コンポーネントに追加することで、インストーラーをビルドして実行すると、指定した DLL が実際にインストールされることがわかりました。これらのプロパティを GAC に追加します。また、ローカルのプログラム フォルダーにもインストールされます。それらがGACにインストールされている場合、それらをプログラムフォルダーにも配置する必要はないと想定していました。両方の場所に DLL があることは問題ですか? 問題がある場合、プログラム フォルダへのインストールを防ぐ方法はありますか?
3147 次
1 に答える
5
あなたが見ているものを再現することはできません。次のようなMSI を 1 つだけ含む MSI を作成するComponent
と、次のようになります。
<Component Directory="SomeFolderUnderProgramFiles">
<File Source="path\to\my\strongnamedsigned.dll" Assembly=".net" KeyPath="yes" />
</Component>
"strongnamedsigned.dll"
次に、GACでのみ取得します。ディレクトリ ツリー (ルートProgramFilesFolder
) がまったく作成されません。
おそらく、.wxs ファイルのどこかに、Assembly=".net"
属性のないファイルの別のコピーがありますか? これを行っても問題はありません (スマート キャブが有効になり、キャビネットのサイズが小さく保たれます) が、ファイルが 2 か所にインストールされる原因を理解することをお勧めします。
于 2013-05-03T16:54:28.270 に答える