wxsファイルに次のコードスニペットがあります。私はOn属性を両方にしても、アンインストールしてもTraceフォルダからトレース拡張子を持つファイルは削除されません。インストール時のみ正常に動作します。 On属性だけを両方に変更した場合、またはインストール時にインストールされた場合、アンインストールプロセスでは動作しません。WiX:RemoveFile宣言により、インストール時にのみファイルが削除されます
<Directory Id="TRACEDIR" Name="Trace">
<Component Id="Trace" Guid="*" KeyPath="yes">
<RemoveFile Id="RemTraceFiles" On="both" Name="*.trace"/>
</Component>
</Directory>
どのような考えですか?
私は以下の質問に対して別のバグを作成しませんでした。私は信じているので、下の質問に追加しました。両方のケースが失敗するのは同じ理由かもしれません。だから私の2番目の質問は、同じファイル内の次のようなシナリオですが、今度はファイルの削除だけでなく、フォルダの削除です。我々が持っていると仮定します
<Property Id="LOGDIREX">
<DirectorySearch Id="CheckLogDir" Path="[INSTALLDIR]\Log" Depth="1" AssignToProperty="yes" />
</Property>
...
<Directory Id="LOGDIR" Name="Log">
<Component Id="Log" Guid="01978736-614F-46C1-88FA-056284510164">
<!--RemoveFolder Id='LogFolder' On='both' /-->
<RegistryValue Root='HKCU' Key='Software\[Manufacturer]\FoobarLog' Type='string' Value='' KeyPath='yes' />
<utilExt:RemoveFolderEx Id='LogFolder' On='both' Property='LOGDIREX'/>
</Component>
</Directory>
私はUtilExtensionライブラリのRemoveFolderExタグ宣言を使用している場合、私のインストールディレクトリ下のログフォルダが両方に削除されますので、この例では、その後、インストールおよびアンインストールし、プロセス。しかし、RemoveFolderEx宣言にコメントして、RemoveFolderEx宣言のすぐ上に宣言されているように、通常のWix RemoveFolderを使用するコメントを外すと、インストール時もアンインストール時もログフォルダは削除されません。
アイデア?
この質問の両方のディレクトリ宣言、TRACEDIRとLOGDIRは、私のアプリケーション用のディレクトリであるINSTALLDIRの下に宣言されています。
TRACEDIRの名前をMYTRACEDIRに変更しました。これは同じ動作です。 –
名前の変更が関係する理由がわかりません。アンインストール時に必要なプロパティに "remember property"パターンを使用しましたか? – PhilDW
私はTRACEDIRがTARGETDIRのようにWixの特別なキー名であると言っていたと思ったので、名前を変更しました。とにかく、私はあなたの助言に続き、あなたが提供したリンクのようなREMEMBERMEプロパティを宣言しました。私はそれをLOGDIRコンポーネントのRemoveFolder宣言とともにRegistryValue宣言に使用しました。それはうまくいかなかった。 私はTRACEDIRのためにそれをテストするのに少し懐疑的でした。なぜならそれはRemoveFile宣言を保持し、LOGDIRはRemoveFolderではないからです。しかし、私はTRACEDIRでそれをテストし、どちらもうまくいきませんでした。 –