WIX和NAnt:无法构建WIX源代码

时间:2011-08-30 13:56:19

标签: wix nant wix3.6

我正在尝试使用WIX 3.6的源代码来调试某些东西并学习一些东西。

在执行make.bat(存在于WIX源的根文件夹中)文件时,首先我找不到NAnt。所以我下载了NAnt并更新了make.bat文件。再次执行该文件时,我收到此错误

NAnt 0.91 (Build 0.91.3881.0; alpha2; 8/17/2010)
Copyright (C) 2001-2010 Gerry Shaw
http://nant.sourceforge.net

Buildfile: file:///D:/wix36-sources/wix.build
Target framework: Microsoft .NET Framework 4.0
Target(s) specified: inc

[readregistry] Registry Path Not Found! - key='Software\Microsoft\VisualStudio\VSIP\10.0\';hive='Microsoft.Win32.RegistryHive[]';
[readregistry] Registry Path Not Found! - key='Software\Microsoft\VisualStudio\VSIP\10.0\';hive='Microsoft.Win32.RegistryHive[]';
 [property] Target framework changed to "Microsoft .NET Framework 2.0".
 [property] Read-only property "dir.hhw" cannot be overwritten.
 [property] Read-only property "hhw-found" cannot be overwritten.

BUILD FAILED - 2 non-fatal error(s), 2 warning(s)

D:\wix36-sources\wix.build(65,4):
Build file 'D:\wix36-sources\test\wixtests.build' does not exist.

我的本​​地安装了.Net framework 4.0。此外,我通过注册表搜索错误中提到的注册表项,但没有找到。我使用的是正确的NAnt版本吗?

2 个答案:

答案 0 :(得分:4)

您是否拥有所有先决条件as described in the documentation

  

要完全构建WiX,您必须安装以下Frameworks和SDK:

     
      
  • NAnt(0.90或更高版本)
  •   
  • Windows SDK for Windows Server 2008和.NET Framework 3.5,Visual Studio 2008,Microsoft Windows 7 SDK和/或Visual Studio 2010中的以下组件:   
        
    • x86和x64编译器,标头和库
    •   
    • IA64标头和库是可选的,但它们是IA64自定义操作支持所必需的
    •   
    • 如果您希望能够构建优化的IA64二进制文件,则需要安装Windows SDK for Windows Server 2008和.NET Framework 3.5 SDK以及Visual Studio 2008;或Microsoft Windows 7 SDK和Visual Studio 2010。
    •   
    • HTML Help SDK 1.4或更高版本[安装到程序文件或程序文件(x86)]
    •   
  •   

缺少的注册表项似乎与VisualStudio SDK有关 - 基本的WiX不需要这个。

如果您有所有先决条件,请尝试将-debug开关传递给Nant,以获得更详细的调试输出。

答案 1 :(得分:1)

解决这个问题:

  

[readregistry]找不到注册表路径! - key ='Software \ Microsoft \ VisualStudio \ VSIP \ 10.0 \'; hive ='Microsoft.Win32.RegistryHive []';

     

[readregistry]找不到注册表路径! - key ='Software \ Microsoft \ VisualStudio \ VSIP \ 10.0 \'; hive ='Microsoft.Win32.RegistryHive []';

如果您使用的是Visual Studio 2010 SP1,则需要Visual Studio 2010 SP1 SDK