使用Nant在注册表中安装项目

问题描述:

我需要使用Nant安装注册表项目。然而,无论我尝试什么,Nant 只有似乎安装该项目的32位版本(即在Wow6432Node注册表子文件夹中)。使用Nant在注册表中安装项目

这是我最近一次尝试:

<target name="InstallMyKey"> 
    <property name="MyKey.reg" value="${BuildPath}\some\folder\MyKey.reg" /> 
    <exec program="regedit"> 
     <arg value="/s" /> 
     <arg value="${MyKey.reg}" /> 
    </exec> 
</target> 

我已经使用替代命令,如REGEDT32和reg尝试,并试图设置工作文件夹到%WINDIR%\ Syswow64资料,并从那里运行注册表编辑器。这些都没有工作。

我试过服用Nant的最新版本(截至昨天),并得到了同样的问题。

也许问题是,南特是一个32位的exe,因此“文件系统重定向”启动32位版本的注册表?

任何人解决了这个问题?

+0

请问这有帮助吗? http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129%28v=vs.85%29.aspx它解释了32位应用程序如何指定KEY_WOW64_64KEY标志来访问64位密钥。但是......我不知道如何使用这些信息来解决我的问题! – MrBlueSky 2012-03-22 09:01:14

从NAnt测试它之前,请尝试从命令提示符进行测试,因为那是exec将会执行的操作。这将排除任何NAnt问题并首先确认您的语法。你是正确的文件夹重定向可能正在发生,所以请尝试显式路径%WINDIR%\ regedit.exe(SysWOW64包含32位版本)。

+0

我再也不能访问我遇到过这个问题的环境。但是,因为这是任何人提供的唯一答案,我会接受它:-) – MrBlueSky 2013-03-13 10:54:47