Wix自定义动作错误.net3.5

本文关键字:net3 错误 自定义 Wix | 更新日期: 2023-09-27 18:12:45

我已经用Wix和Custom Actions创建了一个安装包(msi)。安装在安装了。net 4的系统上工作正常,但是在干净的系统(WIN7 . net 3.5)上,它会失败,出现以下错误。我缩小了wxs包,似乎如果我删除对CustomActions的引用,msi安装(但没有注册表更改)。CustomActions根据用户PC配置向注册表输入新值。同样的项目在. net 4 pc上完美地工作。到处都将目标框架设置为。net3.5。什么好主意吗?

=== Logging stopped: 7/13/2014  14:23:19 ===
MSI (c) (00:F4) [14:23:19:249]: Note: 1: 1708 
MSI (c) (00:F4) [14:23:19:249]: Note: 1: 2205 2:  3: Error 
MSI (c) (00:F4) [14:23:19:267]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1708 
MSI (c) (00:F4) [14:23:19:267]: Note: 1: 2205 2:  3: Error 
MSI (c) (00:F4) [14:23:19:267]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 
MSI (c) (00:F4) [14:23:19:267]: Product: MyProject -- Installation failed.
MSI (c) (00:F4) [14:23:19:267]: Windows Installer installed the product. Product Name: MyProject . Product Version: 1.0.1. Product Language: 1033. Manufacturer: Me. Installation success or error status: 1603.

Wix自定义动作错误.net3.5

这是相当奇怪的修复,但是,我所要做的就是添加下面的代码片段。我感谢大家的支持。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

我将尽力提供一个答案,尽管我不完全了解这个特定问题的速度。如果您的应用程序需要。net 4,这显然没有帮助,但是您是否尝试编译代码以瞄准 ?.NET 2.0框架代替。NET 4?大多数计算机应该能够运行2.0代码,除非该框架被明确锁定使用——这可能是某些公司的情况。

像这样的

运行时限制使我更喜欢本机 c++代码(或Installscript,它也是后来版本的Installshield的本机代码)用于广泛使用的严肃设置。

模拟自定义动作代码(。. NET代码或活动脚本(如VBScript有效)对于内部的东西来说是很好的 -它甚至为设置提供了透明度,这是MSI的一个关键企业利益。

除了以。net 2.0为目标,你还可以检查正确版本的。net框架是否可用,并通过Wix的Burn功能中止安装或将其作为先决条件安装。

最后,这实际上是我喜欢的解决方案,您可以让应用程序本身使用所需的设置更新注册表,并将它们从您的设置中删除。这允许更多的灵活性和错误处理。这完全取决于你要添加什么样的设置。

    如果可能的话,使用vbscript自定义操作将会少很多麻烦。
  1. 最佳实践是,只有当本机安装程序绝对无法完成时,才使用自定义操作。从你所描述的,"CustomActions正在根据用户PC配置输入新值到注册表",看起来你可以通过在PC配置中创建系统搜索来完成它,然后用系统搜索返回的属性上的注册表值约束组件。