NAnt停止在Windows Server 2012上工作,抛出未处理的异常:System.Reflection.TargetInvocationException

时间:2015-08-11 16:38:13

标签: c# .net nant

我在SO上找不到这个确切的问题,唯一的解决方案是解锁文件。在我的场景中,整个nant目录被解除阻塞(使用PS),但我仍然得到以下异常:

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: Method not found: 'System.String System.String.Format(System.IFormatProvider, System.String, System.Object, System.Object'.
   at NAnt.Core.ConsoleDriver.Main(String[] args)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at NAnt.Console.ConsoleStub.HelperArguments.CallConsoleRunner()
   at NAnt.Console.ConsoleStub.Main(String[] args)

要提几件事:

1)我在本地机器上从GITHub项目的HEAD修订版(https://github.com/nant/nant)编译了这个.exe,并遇到Nant failing with bad permissions on build server中描述的相同“解锁”问题,我使用了streams.exe回答用于解锁我本地计算机上的整个nant目录。

2)我在Win2k12实例上安装了.NET 4.5运行时。当我在本地机器上构建exe时(如第1点所述),我使用了GitHub自述文件中建议的nmake命令:

nmake -f Makefile.nmake install prefix="c:\Program Files" TARGET=net-4.0

具体来说,我将TARGET参数保留为“net-4.0”。我不确定这是否重要,因为我在Wink2k12服务器上运行的是较新的版本。

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:1)

好的,所以我修复了我的问题,不是从源代码构建并从sourceforge(http://nant.sourceforge.net/)下载最新发布的zip并执行以下操作:

1)从sourceforge下载“nant-0.92-bin.zip”发行版

2)将zip复制到服务器

3)右键单击zip,单击底部“常规”选项卡下的“取消阻止”按钮(如果不存在,则不会被阻止)

4)zip的提取内容

执行这些步骤后,nant.exe程序运行时仍然没有问题。我不确定这是否可以被认为是一个重复的问题,因为另一个似乎更倾向于nunit2report contrib工具。希望这有助于其他人!