SOとGoogleでしばらく検索しましたが、関連する質問は見つかりませんでした。したがって、この問題が重複していないことを願っています。
私の顧客のために、私は WiX でインストーラー アーティファクトを作成しています。いくつかのファイルがインストールされます
[WindowsVolume]\tool\scripts.
これらのファイルを対応する WiX フラグメントに手動で追加する限り、問題はありませんでした。最近、このコンポーネントのファイルが頻繁に移動および削除されているため、subversion から heat.exe を介してファイルを取得することにしました。私が直面している問題は、heat の -ag スイッチが [WindowsVolume] での動作を拒否することです。-ag は、コンポーネントのディレクトリへのパスが同じままである限り、GUID を静的に保持するためだと思います。したがって、-gg を使用して、ヒートの実行ごとに新しい GUID を生成しました。テスターは現在、ファイルが置き換えられず、フォルダーがまったく作成されない場合があると報告しています。
-ag スイッチを設定して自動生成された GUID を使用すると、ライトから次のエラー メッセージが表示されます。
C:\checkouts\project\Setup\tool.fragment.wxs(41,0): error LGHT0231:
The component 'cmpF69984FE7B4A36DD402E57B30E416ACB' has a key file with path
'TARGETDIR\indexes\arbitrary.file'. Since this path is not rooted in one of
the standard directories (like ProgramFilesFolder), this component does not
fit the criteria for having an automatically generated guid. (This error may
also occur if a path contains a likely standard directory such as nesting a
directory with name "Common Files" under ProgramFilesFolder.)
WiX には、フォルダー、機能、および InstallExecuteSequence を定義するメインの .wxs があります。関連するフォルダーの定義は次のとおりです。
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ToolFolder">
<Directory Id="ToolScriptsFolder" Name="scripts"/>
</Directory>
</Directory>
<SetDirectory Id="ToolFolder" Value="[WindowsVolume]tool" />
収穫されたフラグメントは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="ToolScriptsFolder" />
</Fragment>
<Fragment>
<ComponentGroup Id="CG_ToolScripts">
<Component Id="cmp2BCA6A75C5C234BEF6FAD9FC41C4B661"
Directory="ToolScriptsFolder" Guid="*">
<File Id="fil8C1ADEFF76E859B93A97C72A95365E90"
KeyPath="yes" Source="$(var.ToolScripts)\arbitrary.file" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
ツール\スクリプトを [ProgramFiles] に移動せずに、自動生成された GUID を機能させる方法はありますか? フラグメントを手動で編集することから私を解放する助けをいただければ幸いです:)事前に感謝します!