使用Wix转换器丢失Windows注册表设置

时间:2016-10-26 15:28:55

标签: wix registry installer

我支持使用VS2008用C#编写的Windows工具。这些工具称为STAS。 STAS具有允许用户使用Python脚本调用工具中的“公开函数”的功能。 STAS初始化包含该函数接口的COM对象。 Python脚本使用win32.client.GetObject模块来获取COM对象。 GetObject返回的变量用于调用公开的函数。

我的公司管理层要求我将STAS转换为VS2015。 VS 2015中不支持vdproj安装程序文件.VS2015将Wix用于安装程序项目。我使用“vdproj to wix”转换器程序来生成wix安装程序项目。

我安装了安装程序并安装了STAS工具。我看到Python脚本无效。

我卸载了使用VS2015构建的STAS。然后我运行了注册表比较程序RegShot并选择了“1st shot”。然后我使用VS2008版本安装了STAS工具并再次运行RegShot来比较注册表。 RegShot显示604键被添加到注册表中。 1159值已添加到注册表中。

我卸载了使用VS2008构建的STAS。然后我重复了使用VS 2015构建的STAS的过程。当我在VS2015 STAS被安装之前和之后运行RegShot时,RegShot显示只添加了35个键。 415添加了值。

我有以下问题: 1.有没有人看到Wix转换器程序缺少数百个注册表设置这个问题?

  1. 有没有办法将.reg文件导入WIX .wxs文件?使用VS2015 STAS安装的注册表缺少这么多设置,手动将它们添加到Wix安装文件需要花费太多时间。我看到了这个网站:http://neilsleightholm.blogspot.com/2010/06/wix-reg-file-heat-extension.html

  2. 有人试过这种方法吗?

  3. 我对VS安装程序项目和注册表设置了解不多。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用以下几个选项:

  1. 您可能需要将SelfRegCost=1添加到能够使用dllRegisterServer注册的组件中。这可能是旧安装程序正在执行的操作,也是重新实现该行为的最快方法。 (虽然这不是最好的做法)

    我会看看Orca中的vs2008 msi,看看它是否有SelfReg表。如果是,请找出它引用的文件,并在新的wix项目中,将SelfRegCost=1属性添加到其文件标记中。

  2. 使用加热工具。我会在vs2008 msi的selfreg表中的文件上运行加热工具,然后将输出组件的注册表信息复制到相应组件的新wix文件中。

  3. 检查vs2008 msi的注册表,看看它是否包含所有这些缺失的条目。我认为它不会,因为这不是你在转换中复制的。如果这些条目存在,您应该能够在msi上使用dark.exe并从中获取注册表的信息。

  4. 更好的是,使用vs2008创建的msi并在其上使用dark.exe程序(wix工具集的一部分)。这应该将您的msi反编译为可用的wix文件。您可以选择要复制的文件,也可以只使用完整的反编译输出,尽管它可能非常详细且难以阅读且难以维护或修改。