相关疑难解决方法(0)

WiX替代品?

我曾尝试使用WiX为我的Windows服务构建一个MSI软件包几天,但是遇到我需要的方式有很大的问题.

文档非常糟糕,然后XML结构只是感觉不到结构.我真的不知道他们如何在版本3.6中做得更差.

我不想把所有的时间都花在MSI包上,而是我需要在主应用程序的开发时间.

所以问题是,我应该使用什么MSI构建器如果我需要:

  • 在安装期间设置app.config设置
  • 安装Windows服务
  • 启动Windows服务
  • 简单的安装/卸载

这真的是我所需要的

installation installer windows-installer wix

17
推荐指数
1
解决办法
6700
查看次数

如何避免WiX/MSI部署解决方案中的常见设计缺陷?

如何避免WiX/MSI部署解决方案中的常见设计缺陷?


部署是大多数开发的关键部分 - 部署失败意味着您的最终用户永远无法评估您的产品.这很容易成为软件开发中最昂贵的错误.请给这个内容一个机会.我坚信,通过应用程序设计的微小变化可以显着提高软件质量,使部署更加合理,更可靠 - 这就是"答案"的全部 - 软件开发.


这是一个Q/A风格的问题,答案只列出了MSI文件中不要做的一些事情,以避免最常见的设计缺陷.

windows-installer installshield wix advanced-installer installshield-le

14
推荐指数
1
解决办法
1790
查看次数

程序安装的好处和真正目的是什么?

在我迄今为止编写的所有程序中,如果我希望它在另一个工作站上工作,我只需复制并粘贴使其运行所需的可执行文件和必要文件(例​​如:.o文件,二进制文件......).

但是所有为商业用途而构建的程序总是带有安装程序.例如PC游戏.所以我的问题是:当我们只是将文件复制到目标工作站时,安装的主要好处/原因是什么?

- 其中一个原因可能是防止盗版.但除此之外,我确定还有其他更强的理由吗?

deployment installation installer windows-installer wix

11
推荐指数
1
解决办法
2844
查看次数

Wix安装程序不会覆盖以前版本的可执行文件

我有一个非常简单的安装程序 - 将一个DLL复制到Program Files子文件夹并使用regsvr32.exe注册它.效果很好,但是如果安装了旧版本的dll,"修复"不会覆盖现有的dll.dll已签名,其版本(构建)编号始终递增(例如2.0.0.123 - > 2.0.0.124).

查看以前的类似帖子,我添加了RemoveExistingProducts并将ProductId指定为"*".卸载然后安装新版本工作正常,但我真的需要修复来更新现有的dll.

还有什么我需要做的吗?

谢谢!

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

  <!--
When creating a new install for the next version, these fields must be modified
-->
  <?define ProductVersion = "2.0.00" ?>

  <?define ProductId64 = "*" ?>
  <?define ProductId32 = "*" ?>

  <?define PackageId   = "45F34788-66AC-441C-B666-707FFA7F1EE9" ?>


  <!-- Product name as you want it to appear in Add/Remove Programs-->
  <?if $(var.Platform) = x64 ?>
  <?define ProductName = "XYZ (64 bit)" ?>
  <?define Win64 = "yes" …
Run Code Online (Sandbox Code Playgroud)

windows-installer wix

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

如何比较两个(或更多)MSI文件的内容?

如何对两个(或更多)MSI文件进行 " 内容比较 " 并查看文件内部实际不同的内容 - 而不是进行无用的二进制比较?(这显然只告诉我我是否正在处理同一文件的副本).

一些相关和典型的问题场景:

  • 我们构建系统吐出MSI文件像疯了似的,有时我们需要弄清楚不同的MSI文件之间存在什么样的差异(读:事情发生了转变,现在我们是失败的部署).
  • 我们有来自不同位置的同一消息来源编译MSI文件,其中一些无法运行报告System.BadImageFormatException -我们如何调试什么的MSI文件的差异?(具体处理此错误的答案在这里:应用程序是否依赖于编译它的环境?).
  • MSI文件可以使用各种工具进行编译,但对于stackoverflow用户,这些文件可能最常使用WiXVisual Studio Installer Projects(免费工具包)创建.

这是一个Q/A风格的问题,主题是比较已编译的MSI文件以确定存在哪些真正的"内容差异".

windows-installer wix orca advanced-installer msiexec

10
推荐指数
1
解决办法
5179
查看次数

如何创建Windows安装程序

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

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

powershell windows-installer wix appx msix

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

WIX中的guids语法?

为WIX的wxs文件中的组件提供guid的正确语法是什么?

在我找到的大多数样品中

Guid="00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6"
Run Code Online (Sandbox Code Playgroud)

但是在一些样品中我发现了

Guid="{00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6}"
Run Code Online (Sandbox Code Playgroud)

我更喜欢第二个版本,因为这是由GuidGen工具直接生成的.但这是对的吗?

installer windows-installer wix

7
推荐指数
2
解决办法
2820
查看次数

SQL Server 2017安装被卡住

由于某些原因,我无法在Windows 10计算机上安装SQL Server 2017。

这个有问题的安装程序的第一件事是,我必须卸载VCRuntime 2017才能使安装程序运行。

现在,每次我尝试安装时,安装程​​序都会卡在此时:

SQL Server 2017安装被卡住

到目前为止,我已经尝试过:

[解决了]

该问题是由于后台下载导致的,尤其是在互联网速度较低的情况下(例如python或R-support组件),这种下载永远都需要花费时间。

[解]

  • 如果您确实需要python或R支持,请等到下载完成
  • 否则,从组件列表中取消选择python和R-support
  • (或)从任务管理器中终止python或R-support组件下载器的子进程。

sql-server windows-installer hang

6
推荐指数
1
解决办法
6204
查看次数

安装 C#/WPF 应用程序 (WiX) 的冒险

我有一个 C#/WPF 应用程序,它比简单的应用程序更高级 - 它有主应用程序、几个库,然后是一些 NuGet 包。如果我查看项目的 bin/release/netcoreapp3.1 目录,会发现有一个 EXE、几个 JSON 和一堆 DLL(其中一些具有 PDB)。没什么太疯狂的。客户想要一个听起来不像不合理要求的安装程序。

我首先尝试了 Visual Studio 2019 附带的安装程序,但惊讶地发现它是多么无用。删除后,我上网查了一下,发现WiX似乎比较流行。好吧,我说,我会尝试一下。

安装WiX Toolset Build Tools(听起来有点多余)和WiX Toolset Visual Studio Extension并重新启动 Visual Studio 后,看起来不错。我右键单击我的解决方案,选择“添加”和“新项目”,然后看到“Setup Project for WiX v3”,看起来不错。我单击“下一步”,将其命名为“安装程序”,然后我得到:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="Installer" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="2995de5a-87ef-443d-a25a-450d39720349">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <MediaTemplate />

        <Feature Id="ProductFeature" Title="Installer" Level="1">
            <ComponentGroupRef Id="ProductComponents" />
        </Feature>
    </Product>

    <Fragment>
        <Directory Id="TARGETDIR" Name="SourceDir"> …
Run Code Online (Sandbox Code Playgroud)

windows-installer wix

6
推荐指数
0
解决办法
3791
查看次数

安装工具集和扩展后,如何在 Visual Studio 2019 中查找 Windows Installer XML 节点?

我正在尝试使用 Wix 和 Visual Studio 2019 创建一个安装程序。我是 Wix 新手,所以我刚刚开始从头开始做一些非常简单的工作。因此,我读了这个解释。我使用 Windows 10 内部版本 19042。

创建 winforms 项目对我来说确实工作得很好,但下一个项目却不行。正是因为这一步。

在项目类型树中选择Windows Installer XML 节点,然后选择安装项目

我可以找到 Wix 项目。

在此输入图像描述

我安装了 Wix 工具集。

在此输入图像描述

因此创建一个非常简单的安装程序应该非常简单。但事实上,这并不是因为我未能完成涉及我找不到的项目类型的教程步骤。

您可以通过以下方式提供帮助:

  1. 告诉我该怎么做才能确保Windows Installer XML 节点 变得可见。
  2. 提供在没有Windows Installer XML 节点的情况下执行相同操作的步骤。

从逻辑上讲,我仔细检查了Windows Installer XML 节点是否真的不存在。事实并非如此。

在此输入图像描述

windows-installer wix wix3.11

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