相关疑难解决方法(0)

如何在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万
查看次数

如何更好地利用MSI文件

您可能知道,msiexec是一个命令行应用程序,可用于安装MSI文件.您可能知道,您可以在静默或不可见模式下运行它.

如果安装程序要求用户回答有关要安装的部件的具体问题,是否有一些方法可以在msiexec命令行中添加一系列选项来执行此操作?

我认为必须有某种方法来设置MSI文件的默认设置才能实现这一点.MSI文件是如何制作的?它们是通过微软的工具开发的吗?他们可以打开和编辑吗?

installation installer windows-installer wix msitransform

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

如何创建Windows安装程序

基本上我们以手动安装程序(Windows powershell脚本)的形式发布我们的更改/修复.它将通过读取配置文件值在特定位置安装指定的.dll和SQL脚本文件(我们将在此文件中配置.dll和Sql脚本位置).相同的powershell脚本具有卸载代码以回滚特定的chage集.

是否有任何选项或机制来为上述要求创建Windows安装程序?

powershell windows-installer wix appx msix

10
推荐指数
3
解决办法
8521
查看次数

WiX,如何防止文件卸载虽然我们忘了设置Permanent ="yes"

我们有一个使用Wix创建的产品安装程序,其中包含程序包(" V1 ")和一些配置文件.现在,我们将使用新的产品代码进行重大升级,其中卸载了旧版本的产品并安装了" V2 ".我们想要的是保存其中一个配置文件免于卸载,因为它也需要V2.不幸的是,我们Permanent="yes"在发送V1时忘记设置选项(阅读此问题以获取更多信息).

这里有一个问题:是否有一种简单的方法可以防止文件的卸载?当然,我们可以在脚本中添加一个自定义操作来在卸载之前备份文件,然后再添加另一个自定义操作来恢复它,但恕我直言,这个任务似乎有点过分,并且可能会干扰MSI注册过程的其他部分.

编辑:是的,该NeverOverwrite="yes"属性已经在V2中设置,行为就像我描述的那样.

我不认为在V2的组件参数中直接更改某些内容会有所帮助.也许有机会在卸载V1之前以某种方式在自定义操作中修改注册表,以便安装程序服务认为V1中的配置文件已安装Permanent="yes"

windows installer windows-installer wix

8
推荐指数
1
解决办法
7758
查看次数

WIX:WixUI_InstallDir中的默认目录

WixUI_InstallDir中的默认目录始终为D:.如何将其更改为目录C:?

它也没有显示我在.wxs文件中定义的目录结构.它只显示D:.它实际上应该显示'D:\ folder1\folder2'.这是为什么 ?我需要做些什么才能显示目录结构?

   <Property Id="ROOTDRIVE"><![CDATA[C:\]]></Property>
        <Directory Id="TARGETDIR" Name="SourceDir">
          <Directory Id="ProgramFilesFolder">
            <Directory Id='E' Name='E'>
               <Directory Id="dirm" Name="E Mrch">
                   <Component></Component>
               </Directory>
            </Directory>
          </Directory>
        </Directory>
Run Code Online (Sandbox Code Playgroud)

wix

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

Windows Installer - 安装包时避免 FileinUse 对话框

当有文件的更新补丁必须用现有文件替换时,如果其中一个文件正在被任何进程使用,则会弹出一个正在使用的文件对话框。我想避免那个对话框并使该文件排队等待安装,以便在系统重新启动时安装它。我已经读到在重新启动时排队更新文件是 Windows 安装程序的内置功能。有人可以建议我删除那个 FileInUse 对话框的方法。我尝试将“MsiRMFilesInUse”属性设置为“0”,但没有奏效。

windows-installer wix reboot file-in-use restartmanager

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

从管理员配置文件在当前用户配置文件上创建文件夹和文件

我们的客户端仅允许在以管理员身份登录时安装应用程序。必须为机器的当前用户安装需要安装的应用程序。该应用程序安装正常,当我需要在用户的 appdata/user 配置文件文件夹中放置一个配置文件时,我的问题就出现了。由于这是他们想要的地方,目前配置正在安装时被删除到管理员配置文件中。我如何解决这个问题,有没有办法让我检查安装是否有其他配置文件并可能写信给他们,但这感觉很脏。

c# windows windows-installer wix profiles

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