相关疑难解决方法(0)

Windows Installer和WiX的创建

我们目前使用WiX来构建我们的MSI文件,因此它是我使用过的唯一一个MSI构建器.我知道您可以在Visual Studio中本地构建安装程序.使用WiX和Windows Installer有什么区别,各自的优缺点是什么?

installer windows-installer wix orca

23
推荐指数
2
解决办法
8142
查看次数

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

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


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


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

windows-installer installshield wix advanced-installer installshield-le

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

如何更好地利用MSI文件

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

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

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

installation installer windows-installer wix msitransform

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

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

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

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

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

deployment installation installer windows-installer wix

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

InstallShield - 防止升级过程中注册表值被补丁覆盖?

我正在 InstallShield MSI 项目上使用 InstallShield 2016,并尝试创建一个带有更新可执行文件的次要补丁包。一切正常,但注册表值在更新后更改为默认值。

我已经考虑过更改 REINSTALLMODE 字符串,但对于将来利用注册表项系统来说,它可能限制太多。我还了解到使用 AppSearch 和 RegLocator 表将值读取到 msi 属性中。我不明白如何使用这些表,所以这是一个我不太明白的解决方案。

我缺少什么?

谢谢。

windows-installer installshield upgrade

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

如何从 Electron Builder 参数化 msi 文件

我正在尝试使用 electro-builder (版本 20.39.0)创建一个 .msi 安装程序文件,可以在安装时对其进行参数化。参数(例如服务器端点)应写入文件中。

示例:
然后应该出现在安装目录中MsiExec /i "MyProject.msi" SERVER_ENDPOINT=myapp.example.com
myapp.example.com文件中。

我尝试编辑Electron-builder 的 wix 模板文件,添加以下内容以将 ${SERVER_ENDPOINT} 写入 server.txt

文件C:\...\MyProject\node_modules\electron-builder-lib\templates\msi\template.xml

...
<CustomAction Id="writeConfigFile" Directory="APPLICATIONFOLDER" Execute="commit" Impersonate="yes" ExeCommand="cmd.exe /c &quot;echo ${SERVER_ENDPOINT} > server.txt&quot;" Return="check" />
...
<InstallExecuteSequence>
  ...
  <Custom Action="writeConfigFile" After="InstallFinalize"/>
</InstallExecuteSequence>

Run Code Online (Sandbox Code Playgroud)

跑步与

MsiExec /i "MyProject.msi" /L*v Install.log SERVER_ENDPOINT=myapp.example.com
Run Code Online (Sandbox Code Playgroud)

我还没有工作。它安装但不显示writeConfigFile在日志文件中。

您认为这是使 msi 文件参数化的正确方法吗?
或者您会推荐另一种解决方案吗?

我还找到了 Orca.exe,用于创建 MST 文件,但我更喜欢一个简单的解决方案,无需手动步骤。

windows-installer electron-builder

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

Wix自定义卸载操作 - 如何在msi删除文件之前运行

我有一个自定义操作,将文件添加到安装目录.卸载程序时,另一个自定义操作会尝试删除这些文件,以便删除安装目录.

问题是我的自定义卸载操作删除标准安装文件运行,因此安装目录保留在那里,尽管它是空的.

配置看起来类似于:

<CustomAction Id="AddFilesAction" BinaryKey="installerActions" DllEntry="AddFiles" Execute="deferred" Return="check" Impersonate="no" />
<CustomAction Id="CleanupAction" BinaryKey="installerActions" DllEntry="Cleanup" Execute="deferred" Return="check" Impersonate="no" />

<InstallExecuteSequence>
  <Custom Action="CleanupAction" Before="InstallFiles">Installed</Custom>
  <Custom Action="AddFilesAction" After="InstallFiles">NOT Installed</Custom>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

我可以在CleanupActionmsi开始删除安装文件之前运行,以便自定义文件已被删除,msi可以删除主安装目录吗?

installation windows-installer wix wix3.7

3
推荐指数
2
解决办法
1394
查看次数

MSI 安装程序错误 - MSIExec 失败:1603

我正在尝试在服务器上安装 Windows 服务,当以管理员身份运行命令行并导航到 InstalUtil.cmd 文件并运行它时,我收到错误“msiexec failed: 1603”,但是该服务确实已安装并且按预期完美运行。有任何想法/建议来修复错误消息吗?

windows command-line windows-installer windows-services

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

具有Windows应用程序在线注册的安装程序

我们使用Visual Studio 2013在vb.net中开发了一个软件.现在我们要构建一个具有以下步骤/功能的自定义安装程序:

  1. 用户开始安装我们的软件.
  2. 在"输入串行密钥"选项中,用户输入我们提供的16位串口.
  3. 单击"确定"按钮后,我们的软件将连接到我们的IP并将串行密钥与其他用户的信息一起保存到我们的数据库中.
  4. 确认密钥将返回给我们的软件.
  5. 软件写入文件并将其保存到系统文件夹.

它几乎像Adobe或Corel注册过程.我们对其他技术持开放态度,这些技术必须确保我们的软件必须仅安装在一台机器上.请注意,我们是一群新手程序员(不是那么先进水平),所以; 如果这个过程得到详细阐述,对我们非常有帮助.

vb.net installer windows-installer wix visual-studio-2013

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

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

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

c# windows windows-installer wix profiles

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

如何在WIX中为Directory分配路径值?

在我的WIX项目中,我有一个像这样的目录结构:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="INSTALLLOCATION" Name="FolderName">
   ...
  </Directory>
  <Directory Id="MYDIRECTORY" Name="SomeDifferentDirectory">
   ...
  </Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)

这里INSTALLLOCATION代表我程序的安装文件夹,但是我想另外创建另一个安装目录之外的目录,例如D:\MyFolder1\MyFolder2,从上面的例子中我如何分配这个值,MYDIRECTORY以便在安装完成后创建它?

windows-installer wix wix3.11

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