我正在尝试配置继承的WiX安装程序以用于我的软件。
该软件在C:\ SomePath \ LogFiles中记录日期特定文件,如2014-05-19.txt,2014-05-18.txt等等(与问题无关,但也许值得注意的是将出现由软件创建的文件,但不会由安装程序本身创建。
我的WiX安装程序会像这样创建LogFiles目录(为了便于阅读,删除了许多元素,GUID等):
<Wix>
<Product Id="SOME_GUID" Version="SOME_VERSION" UpgradeCode="OTHER_GUID">
<Feature Id="EMPTY_DIRECTORIES" Title="Empty Directories" Level="1" Display="hidden">
<ComponentRef Id="SomeFolder" />
<ComponentRef Id="LogFiles" />
<ComponentRef Id="SomeOtherFolder" />
</Feature>
<DirectoryRef Id="DIR_LOG_FILES">
<Component Guid="" Id="DELETE_DIR_LOG_FILES">
<RemoveFile Id="DELETE_DIR_LOG_FILES_FILES" Name="*.*" On="uninstall" />
<RemoveFolder Id="DELETE_DIR_LOG_FILES" On="uninstall" />
</Component>
</DirectoryRef>
</Product>
<Fragment>
<Directory Name="SoftwareName" Id="SOFTWARENAME">
<Directory Id="DIR_LOG_FILES" Name="LogFiles">
<Component Id="LogFiles" KeyPath="no" NeverOverwrite="no" Permanent="no" Win64="no" Location="local">
<CreateFolder>
<util:PermissionEx CreateChild="yes" CreateFile="yes" Delete="yes" Read="yes" ReadAttributes="yes" ReadExtendedAttributes="yes" ReadPermission="yes" Traverse="yes" GenericRead="yes" GenericWrite="yes" User="Everyone" />
</CreateFolder>
</Component>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="LoggingComponents" Directory="WHERE_THE_LOGGING_DLLS_LIVE">
<ComponentRef Id="DELETE_DIR_LOG_FILES" />
</ComponentGroup>
</Fragment>
</Wix>
我曾希望此设置会导致仅在卸载时删除目录和内容。不幸的是,删除似乎也会在升级时触发。有没有办法配置WiX来区分并做出适当的反应?
答案 0 :(得分:0)
在构建过程中,您是否更新了要生成的dll的版本,因为它应该覆盖它。您是否有任何删除文件/文件夹标签,因为它们也可能导致问题。