WiXは不平を言っています(オッズは何ですか?):
エラー95コンポーネント「blahblah」にパス「TARGETDIR \ blah.dll」のキーファイルがあります。このパスは(ProgramFilesFolderなどの)標準ディレクトリの1つにルート化されていないため、このコンポーネントは、自動生成されたGUIDを持つための基準に適合しません。(このエラーは、ProgramFilesFolderの下に「CommonFiles」という名前のディレクトリをネストするなど、パスに標準ディレクトリが含まれている場合にも発生する可能性があります。)
しかし、自動生成されたGUIDが必要であり、UIでTARGETDIRを設定しているため、ProgramFilesFolderで構成される他のパスにTARGETDIRを設定する必要はなく、ユーザーが指定できるように変更することもできます。アプリケーションをインストールしたいパス...誰かがこの機能を取得するにはどうすればよいですか?出来ますか?つまり、私は両方の世界の長所を持つことができるかどうか?なぜそんなに大したことなのですか?WiXは時々制限が強すぎます...
私はちょうどそれを手に入れました...ちょっと迷惑ですが、それは大丈夫です...
以前はTARGETDIRを変更して操作していましたが、今ではINSTALLDIRを簡単に操作できることに気付きました。たとえば、ディレクトリ構造を次のようにリファクタリングしました。
<Directory Id='TARGETDIR' Name='SourceDir'>
...
<Directory Id="ProgramFilesFolder">
<Directory Id="blahFolder" Name="blah">
<Directory Id="INSTALLFOLDER" Name="blah"/>
</Directory>
</Directory>
</Directory>
コンポーネントにINSTALLFOLDERを参照させることができ、コンポーネントのGUIDが自動生成されます。
<ComponentGroup Id='blahgroup'>
<Component Id='blahId' Directory='INSTALLFOLDER' Transitive='no'>
<RegistryKey Root='HKLM' Key='Software\blah\blah' ForceCreateOnInstall='no' ForceDeleteOnUninstall='no'>
<RegistryValue Type='string' Name='blah' Value='BLAH' />
</RegistryKey>
</Component>
...
</ComponentGroup>
しかし、私のUIでは、インストールフォルダーのパスだけを非常にうまく変更できるので便利です。
<Product ...>
...
<CustomAction Id='SetInstallFolder' Property='INSTALLFOLDER' Value='[ProgramFilesFolder]blah\blah\'/>
...
</Product>
次に、INSTALLFOLDERを強制的に任意の場所に向けることができます。
<InstallUISequence>
<Custom Action='SetInstallFolder' Sequence='1'/>
...
</InstallUISequence>
<AdminUISequence>
<Custom Action='SetInstallFolder' Sequence='1'/>
...
</AdminUISequence>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加