ここで使用できる条件(「ディレクトリが存在します」など)はありますか?
はい、あなたはこのように条件要素を使用することができます。
<Directory Id="FooFolder" Name="Foo">
<Component Id="SomeId">
<File Source="..." />
<Condition>Not FOO_FOLDER_ALREADY_EXISTS</Condition>
</Component>
</Directory>
あなたが条件として使用できるものの種類は、WindowsインストーラのConditional Statement Syntaxドキュメントで説明されています。この場合
、私はあなたがこのような
DirectorySearchで
FOO_FOLDER_ALREADY_EXISTS
プロパティを設定することができると信じて:
<Property Id="FOO_FOLDER_ALREADY_EXISTS">
<DirectorySearch Id="FooFolderSearch" Path="[FooFolder]" />
</Property>
編集:ので、明らかに上記のディレクトリ検索が機能しません。 [FooFolder]
プロパティは、CostFinalize
アクション中にのみ解決されます(documentation参照)。しかし、ディレクトリ検索はすでにAppSearch
の処理中に行われます。
これを回避する方法がわかりません。おそらく、CostFinalize
の後にFOO_FOLDER_ALREADY_EXISTSプロパティを設定し、Windowsインストーラーのディレクトリ検索ではなくカスタムアクションで設定することになります。
どのように相対パス、目的地ディレクトリ内のパスを設定しますか?私は、ID番号のMYSQLを持っている: <コンポーネントID = "COPYING" DiskId = "1" のGuid = "B045BC99-F36E-49A7-8CD6-24C09EA27ADC"> SETUP_MODE = "FirstComputer" <ファイルID = "COPYING" NAME = "COPYING" ソース= "InstallerFiles \ BIT Rejestry \のMySQL \のCOPYING" /> しかし、これは今働くん: <プロパティID = "MYSQLFOLDERALREADYEXISTS"> –
user1209216