相关疑难解决方法(0)

如何添加仅在卸载时(通过MSI)发生的WiX自定义操作?

我想修改MSI安装程序(通过WiX创建)以在卸载时删除整个目录.

我理解WiX中的选项RemoveFileRemoveFolder选项,但是它们不够强大,无法递归删除安装后创建内容的整个文件夹.

我注意到类似的Stack Overflow问题在卸载WiX时删除文件,但我想知道是否可以通过调用批处理脚本删除文件夹来更简单地完成此操作.

这是我第一次使用WiX,而且我仍然掌握了自定义操作.在卸载时运行批处理脚本的自定义操作的基本示例是什么?

windows-installer custom-action wix

154
推荐指数
5
解决办法
11万
查看次数

如何在wix v3.8中进行重大升级时保留配置文件?

我想在msi安装程序进行重大升级时保留配置文件.对于配置文件,我在安装时进行了更改.代码如下:

<Component Id="MODIFYCONFIG" Guid="6A1D7762-B707-4084-A01F-6F936CC159CE" Win64="yes">
    <File Id="Application.config" Name="Application.config" Vital="yes" KeyPath="yes" Source="Resource\Application.config"></File>
    <util:XmlFile Id="SetValueIP" Action="setValue" Permanent="yes" File="[#Application.config]"
         ElementPath="/configuration/applicationSettings/Application.Properties.Settings/setting[\[]@name='IpAddress'[\]]/value"  Value="[IPADDRESS]" Sequence="1"/>
    <util:XmlFile Id="SetValuePort" Action="setValue" Permanent="yes" File="[#Application.config]"
         ElementPath="/configuration/applicationSettings/Application.Properties.Settings/setting[\[]@name='IpPort'[\]]/value"  Value="[PORT]" Sequence="2"/>
    <Condition>Not Installed</Condition>
  </Component>
  <Component Id="KEEPCONFIG" Guid="F7F173AA-C2FD-4017-BFBC-B81852A671E7" Win64="yes">
    <RemoveFile Id="ApplicationConfig" Name="Application.config" On="uninstall"/>
    <Condition>(REMOVE=ALL) AND (NOT UPGRADINGPRODUCTCODE)</Condition>
  </Component>
Run Code Online (Sandbox Code Playgroud)

但是,当发生重大升级时,不会保留文件.如何保留修改后的文件?

wix upgrade preserve

13
推荐指数
2
解决办法
1万
查看次数

WiX安装程序在卸载时不删除文件

我告诉wix MSI文件在卸载时删除文件,它只是没有注册它.

对于bundle,我这样调用MSI文件:

<MsiPackage SourceFile="..\..\..\..\Kiosk\MyProject\bin\Release\MyProject.msi"        Name="MyProject.msi" DisplayInternalUI="yes" Permanent="no" />
Run Code Online (Sandbox Code Playgroud)

在MSI文件中我称之为:

<ComponentGroup Id="Purge" Directory="INSTALLFOLDER">
  <Component Id="PurgeFiles" Guid="">
    <RemoveFile Id="RemoveBaseFolder" Name="*" On="uninstall" Directory="INSTALLFOLDER" />
    <RemoveFile Id="RemoveLanguage_af" Directory="Language_af" Name="*.*" On="uninstall"/>
    <RemoveFile Id="RemoveLanguage_de" Name="*.*" On="uninstall" Directory="Language_de"/>
    <RemoveFile Id="RemoveLanguage_es" Name="*.*" On="uninstall" Directory="Language_es"/>
    <RemoveFile Id="RemoveLanguage_fr" Name="*.*" On="uninstall" Directory="Language_fr"/>
    <RemoveFile Id="RemoveLanguage_it" Name="*.*" On="uninstall" Directory="Language_it"/>
    <RemoveFile Id="RemoveLanguage_ja" Name="*.*" On="uninstall" Directory="Language_ja"/>
    <RemoveFile Id="RemoveLanguage_ko" Name="*.*" On="uninstall" Directory="Language_ko"/>
    <RemoveFile Id="RemoveLanguage_ru" Name="*.*" On="uninstall" Directory="Language_ru"/>
    <RemoveFile Id="Removezh_CN" Name="*.*" On="uninstall" Directory="zh_CN"/>
    <RemoveFile Id="RemoveDatabase" Name="*.*" On="uninstall" Directory="Database"/>
    <RemoveFile Id="RemoveFileData" Name="*.*" On="uninstall" Directory="FileData"/>
    <RemoveFile Id="RemoveRecordingTempData" Name="*.*" …
Run Code Online (Sandbox Code Playgroud)

windows-installer wix burn wix3.7

9
推荐指数
2
解决办法
1万
查看次数

卸载时如何通过Wix删除生成的文件夹和文件?

安装后,我的文件夹中具有以下文件夹结构C:\Program Files (x86)

安装后的文件夹结构

文件夹的路径generated为:C:\Program Files (x86)\CompanyName\AppName\generated

该文件夹generated包含子文件夹和文件,它们将由应用程序在运行时通过C#代码创建:

var lPathToDir = Path.Combine(lFileService.GetFilePath, pSamAccountName);

if (!Directory.Exists(lPathToDir))
{
    Directory.CreateDirectory(lPathToDir);
}
Run Code Online (Sandbox Code Playgroud)

该变量lPathToDir可以具有以下值:

C:\Program Files (x86)\CompanyName\AppName\generated\user1
// or
C:\Program Files (x86)\CompanyName\AppName\generated\user2
Run Code Online (Sandbox Code Playgroud)

然后看起来像:

在此处输入图片说明

我的问题:卸载后,这些子文件夹user1user2将不会被删除。我使用以下Wix声明:

<!-- Target installation folder -->
<Directory Id="ProgramFilesFolder" Name="$(var.ProgramFilesFolder)">
    <Directory Id="APPLICATIONFOLDER" Name="$(var.AppFolderName)">

      <Directory Id="BIN" Name="bin" />
      <Directory Id="HELP" Name="help" />
      <Directory Id="GENERATED" Name="generated" />

      <Component Id="RemoveAll" Guid="THE-GUID-HERE">
        <RemoveFile Id="RemoveAllFilesOnUninstall" Directory="APPLICATIONFOLDER" Name="*.*" On="uninstall" />
        <RemoveFolder Id="RemoveAllFoldersOnUninstall" Directory="APPLICATIONFOLDER" On="uninstall" />
        <util:RemoveFolderEx …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc wix .net-4.5 wix3.9

5
推荐指数
1
解决办法
1899
查看次数

卸载时删除文件和文件夹

我正在学习WIX为我的应用程序构建安装程序但我仍然坚持删除文件.我的问题是如何在卸载时删除文件和文件夹.当我单击"删除"按钮时,安装程​​序创建的所有文件和文件夹在卸载时都不会删除.

windows-installer wix uninstall wix3

3
推荐指数
1
解决办法
6479
查看次数

在WIX中执行DOS命令

我想从WIX执行DOS命令.命令如下:

[SystemFolder]cmd.exe /c rmdir /s /q [INSTALLDIR]
Run Code Online (Sandbox Code Playgroud)

基本上我想在卸载期间从命令提示符下删除安装目录.

我想使用SystemFolder属性指定cmd.exe路径.最重要的是,我不希望在卸载期间出现命令窗口.

wix

0
推荐指数
1
解决办法
937
查看次数