好的,我使用InstallShield(软件)为程序创建了一个安装文件。直到按照此处 .NET 4 fails to install because SECUREREPAIR fails to CreateContentHash of file SetupResources.dll: for computing hash Error: 997 所述更改注册表后,我才能成功安装该程序。对注册表进行更改后,我可以安装我的程序。因此,要在运行我的安装程序文件之前进行注册表更改。创建安装程序文件时,是否不能在InstallShield的某个位置嵌入该 .reg 文件,以使 .reg 文件在我的实际安装开始之前运行?
答案 0 :(得分:0)
您可以在脚本中创建自定义操作,以更新注册表并添加到序列中。下面是一个粗糙的示例(如果不进行一些调整,将无法正常工作)。
然后在UI序列中的ISInstallPrerquisites之前添加到序列中。
STRING svCmd;
STRING svCmdPath;
开始“对于DWORD:
svCmd =“ reg add” +键名+“ / v” + ValueName +“ / t REG_DWORD / d” + dataValue +“ / f”;
“对于字符串:
svCmd =“ reg add” +键名+“ / v” + ValueName +“ / t REG_SZ / d” + dataValue +“ / f”;
svCmdPath =“ cmd”;
let re = /HaHa/g, str = "Hello_HaHaHaHackerRank"; while ((match = re.exec(str)) != null) { console.log("match found at " + match.index); }
答案 1 :(得分:0)
- 此问题在所有计算机上还是仅在部分计算机上发生?什么操作系统?
- 您的防病毒软件安全套件是什么?
- 您是否处于锁定的企业国有企业? (标准操作环境)。
- 有自定义政策吗?
- 您使用的是强制性(或临时)配置文件吗?
必备软件 :如果这是正式的 Microsoft .NET 4运行时安装程序,那么我将其排除在外自己的安装程序,并将其作为必备程序与我的主安装程序一起提供,或者我只是指向网页以下载该运行时的最新版本。我更喜欢后一种选择,因为随着新的安全修补程序可用,您随包提供的内容可能会很快过时。 关键 :大多数人现在可能已经安装了此运行时?
Windows Update :我什至可以告诉用户通过Windows Update安装,但这更多的是手动操作,需要更多步骤。 .NET 4现在不是必需的Windows Update安装吗?
企业用户 :企业打包人员将欣赏运行时与您自己的软件包的分离,因为花了很多时间从供应商软件包中取出必备软件包。他们只需要一些一页的文档,告诉他们需要什么运行时。 他们将根据自己的企业标准预先包装正确的产品-并调试了您提到的问题。不需要对抗运行时设置。
真实世界 :您可以将 *.reg
文件与您的 .NET 4安装程序一起交付 >带有简短 README.txt
的文件,其中描述了您提到的问题。然后他们可以根据需要进行处理,如果未发现问题,则可以避免大惊小怪。然后,在主设置中添加 LaunchCondition ,以防止其安装,除非安装了 .NET 4 。
答案 2 :(得分:0)
安装程序软件通常(总是?至少instalShield至少有一个)具有“注册表”功能,您可以在其中定义要添加的注册表层次结构/条目/值。
不需要任何脚本或reg文件。所有值都在链接安装之前进行设置。
无论如何,因为InstallShield已经为您解决了问题,所以不太可能会要求您找到解决方法。只需在安装程序中进行设置即可。