WiX工具集(以前称为Windows Installer XML)是一个工具集,可以从XML源代码构建Windows安装包和WiX引导程序。该工具集支持一个命令行环境,开发人员可以将其集成到他们的构建过程中,以构建MSI和MSM安装程序包以及EXE引导程序。对于基于云的Web开发平台,请使用[wixcode]标记。
我正在过滤现有的问题,但我认为没有一个问题能在这个基本层面上明确地回答这个问题。我在记事本中构建 WXS 文件,而不是从 IDE 中构建。 我的情况是:我有多个
我正在使用 Wix 开发一个安装程序,需要在安装过程中静默终止进程(而不是应用程序),这样用户就不会弹出窗口要求终止进程或等待并重新启动。 我...
我正在尝试通过命令行参数控制自定义操作,这是我的msi脚本: ... 我正在尝试通过命令行参数控制自定义操作,这是我的msi脚本: ... <CustomAction Id='LaunchInstallQuiet' FileKey='InstallImageFile' ExeCommand='-q' Execute="deferred" Return="check" Impersonate="yes" /> <CustomAction Id='LaunchInstallQuietNonadmin' FileKey='InstallImageFile' ExeCommand='-q -na' Execute="deferred" Return="check" Impersonate="yes" /> <Property Id="NONADMIN" Secure="yes" Value="0" /> <InstallExecuteSequence> <Custom Action='LaunchInstallQuiet' After='InstallFiles'>NONADMIN!="1" AND NOT REMOVE="ALL"</Custom> <Custom Action='LaunchInstallQuietNonadmin' After='InstallFiles'>NONADMIN="1" AND NOT REMOVE="ALL"</Custom> <ScheduleReboot After="InstallFinalize">Installed</ScheduleReboot> </InstallExecuteSequence> ... 但是我收到以下命令的 2717 错误,并且自定义操作根本不执行: msiexec /i myapp.msi msiexec /i myapp.msi NONADMIN=1 感谢@zett42,这有效: <Custom Action='LaunchInstallQuiet' After='InstallFiles'><![CDATA[NONADMIN<>"1" AND NOT REMOVE="ALL"]]></Custom>
我们如何为 Wix Product/@Version 使用自定义产品版本格式 - 例如 2022.02.01?
我们如何为 Wix Product/@Version 使用自定义产品版本格式 - 例如 2022.02.01? 如果我使用编译时变量 (@) 执行此操作,则会出现错误 - 产品版本必须具有主要版本...
如何在 WiX 工具集中设置自动收获文件的 CompanionFile 属性?
我正在开发一个项目,需要在 MSI 安装程序中处理 System.IO.Compression.Native.dll 的版本降级。这个问题在 GitHub 上进行了讨论,建议使用
以前MSI每次都会创建新的日志文件,一切都运行顺利。现在我们有一个要求,我们不需要创建新的日志文件,而是需要附加到现有的文件...
卸载在 WIX 中创建的安装程序时未删除 Windows 服务
我已经创建了安装 Windows 服务的安装程序,但是当我卸载它时,该服务仍保持启动状态,而不是删除。我已经在 Wix 中创建了安装 msi。 我已经创建了安装 Windows 服务的安装程序,但是当我卸载它时,该服务仍保持启动状态并且不会删除。我已经在 Wix 中创建了安装 msi。 <DirectoryRef Id="INSTALLDIR"> <Component Id='MyComponent' Guid='CDBA9BC4-F839-4CAB-8AB0-4397EC079541'> <File Id='LogFWService' Name='LogFWService.exe' Source="$(var.LFShared)\LogFWService.exe" KeyPath="yes" /> <ServiceInstall Id="InstallLFService" Name="LogFWService" DisplayName="OpenFramework Logging Service" Start="auto" ErrorControl="normal" Description="Captures log events and inserts the log messages into database" Type="ownProcess"> <ServiceDependency Id="MSMQ" /> </ServiceInstall> <ServiceControl Id="sc_InstallLFService" Name="LogFWService" Start="install" Remove="uninstall" Stop="both" Wait="yes"/> </Component> </DirectoryRef> 即使我使用了删除文件属性,但在卸载时它仍然不会删除 Windows 服务。 请帮助任何人了解如何卸载 Windows 服务。 我也有类似的问题。我不是 100% 确定,但我认为在我更改安装组件的 GUID 后它就消失了。以前的 GUID 是从另一个项目复制粘贴的,以及用于安装 Windows 服务的整个安装标记,但我忘记将其替换为新的 GUID。 顺便说一句,您可以使用命令 propmt 命令 sc 删除“剩余”服务: sc 删除“YourServiceNameHere” 我在开发环境中测试同一 Wix 安装程序的多个版本时发生过这种情况。问题是它无法删除实体(组件),因为仍然声明了依赖项。这通常是由于之前的尝试留下了一些注册表项。 搜索以下内容并删除适当的(不是全部)键 组件中密钥文件的ID 组件的 GUID 目录/文件夹名称(可包含 \HKLM\MS\Win\CurVer\Installer\Folders 中的引用计数) 密钥文件的名称(也是引用计数,但不在文件夹密钥中) 名称搜索中显示的一些键往往位于最近使用的列表或其他良性位置。使用标准 Regedit 时,这可能是一个乏味的过程,因此如果您采用此方法,建议您使用更好的工具。 理想情况下,您应该在可以恢复到之前状态的计算机上测试安装程序。
我有一个主安装程序包,可以调用其他 WiX 安装程序。但是在卸载时,我希望卸载操作能够卸载所有子包。 我正在使用引导程序
仅凭 Wix 文档,我正在努力为我的安装程序构建一个基本的 UI,以至于我显然无法掌握一些基本想法。 正在阅读 https://
我需要在安装后注册一个HTTP端口,但我想这可以抽象为通常执行任何命令行命令。这是我到目前为止所得到的: 我需要在安装后注册一个 HTTP 端口,但我想这可以抽象为通常执行任何命令行命令。这是我到目前为止所得到的: <CustomAction Id="ExecPortOpen" Directory="INSTALLFOLDER" Execute="immediate" ExeCommand="cmd.exe "netsh http add urlacl url=http://+:1234/ user=Everyone"" Return="ignore" /> <InstallExecuteSequence> <Custom Action="ExecPortOpen" After="InstallFinalize" /> </InstallExecuteSequence> 这只是在安装过程中打开一个命令提示符,并且不执行任何操作。我尝试在 cmd.exe 和命令之间添加 /c (我不知道它的作用),但这只是打开和关闭命令提示符而不执行命令。我该如何进行这项工作?我正在使用 WiX 3.8。 自己解决了,实际上是UAC/权限问题。对于任何感兴趣的各方,这里是工作代码: <CustomAction Id="ExecPortOpen" Directory="INSTALLFOLDER" Execute="commit" Impersonate="no" ExeCommand="cmd.exe /c "netsh http add urlacl url=http://+:1234/ user=Everyone"" Return="check" /> <InstallExecuteSequence> <Custom Action="ExecPortOpen" After="InstallInitialize" /> </InstallExecuteSequence>
Wix 5 BootstrapperApplication 不提示安装目录
我正在使用捆绑包来安装我的应用程序。 我的 MSI 提示输入安装目录,但是当通过 WIX 引导程序运行时,不会显示安装目录的提示。我...
我正在尝试从 FTDI 驱动程序执行 exe 文件的安静安装。我从这里得到这些驱动程序。下载后,当我7-zip进一步解压.exe时,它会创建一个包含dll的文件夹...
我正在创建一个 WiX 设置,该设置应该有两种语言版本(两个 msi 文件:一个用于 de-de,一个用于 en-us)。 在设置中使用 WixUI_InstallDir,即在选择安装之前...
如何在 WiX v5 中使用 StandardDirectory 定义目录结构(相当于 v3 目录层次结构)
<Directory Id="ProgramFilesFolder"> <Directory Id="MyApplication" Name="My Application"> <Directory Id="Bin" Name="bin" /> <Directory Id="Config" Name="config" /> <Directory Id="Logs" Name="logs" /> </Directory> </Directory> 在 WiXv5 中,从 Directory 元素转变为至少使用 StandardDirectory 作为父元素。我想知道如何使用此 StandardDirectory 元素,同时保持相同的目录层次结构 将第一个 Directory 元素更改为 StandardDirectory (并匹配关闭元素)。就是这样。
为什么这个 Wix 网站在刷新或直接使用 URL 访问时会进入空白页面?
问题: https://www.roofaesthetics.com/book 有谁知道为什么当您直接访问该网址时该页面是空白的?但是,当您通过单击菜单链接访问该页面时(例如从主页...
我正在尝试组合一个简单的 wixl 配置。我有一个 150mb 的 exe,我需要生成一个 MSI 以便于部署。运行时,MSI 只需要将嵌入的 exe 复制到系统中,然后...
如何确定WIX Bootstrapper中是否安装了dotnet和VSTORuntime
我使用wix制作了我的插件项目的安装文件。它有一些依赖项,例如 dotNet 和 VSTO Runtime。所以我使用 Wix bootstrapper 来确认在安装之前必须安装依赖项...
我有一个 WiX 4 项目,它引用当前为 .NET Framework 4.8 的 CustomAction。我计划将 WiX 项目升级到 WiX 5.0.0。我可以将 CustomAction 项目升级到 .NET 8 w...
我需要在WIX本地化文件WIXUI_en-us.wxl中使用变量。 我尝试像这样使用它: 产品的另一个版本 $(...