2010-09-14 100 views
8

我是那些喜欢编辑和继续VS的人之一。正因为如此,我开发了32位应用程序。但是,当我在调试模式下运行单元测试并尝试编辑一行时,我得到了通常的“对64位应用程序的更改是不允许的”。信息。我所有的组件都标记为x86,nunit被安装为32位应用程序。我的系统是64位的。
如何强制nunit作为32位应用程序运行?nunit在64位调试,应用程序在32位

+0

附加信息:我确实尝试在nunit-console.exe和nunit.exe上设置32BIT corflag。 – 2010-09-14 07:01:43

+0

您只需标记主机进程即可在AnyCpu上保留所有其他组件。使100%确定你的主机被标记为32BIT +。验证您修改的主机实际上是您正在运行的主机。 最近检查任务管理器,你的主机不是64位(它将有一个*旁边,如果它的32位) – 2010-09-14 07:05:55

+0

我现在正在尝试别的东西。我通过ReSharper运行nunit,因此它可能是ReSharper的64位64位运行的TaskRunner。 – 2010-09-14 07:13:44

回答

7

好吧我想通了。这确实是作为64位运行的ReSharper TaskRunner,更准确地说是JetBrains.ReSharper.TaskRunner.CLR4.MSIL.exe。我第一次创建文件的一个副本,使其可写,然后迫使它是32BIT的标志高:

>corflags JetBrains.ReSharper.TaskRunner.clr4.msil.exe /32bit+ /force 

/力,因为它的签署。

还有几个其他的TaskRunner程序集,但我发现这是我正在使用的(试错)。如果遇到其他ReSharper 64位相关问题,可能需要对其他人也这样做。

希望这会帮助他人解决同样的问题。

+0

我发现了一个令人困惑的警告消息,因为我不确定它是否实际应用了32位更改。但事实证明这是:) – Jen 2012-03-06 00:18:20

+0

我怎么总是得到“无法打开文件写入”,即使我已经关闭所有的VS,我作为管理员运行命令行? – 2013-04-17 03:46:04

12

对于Resharper 5,您可以将您正在测试的程序集的平台目标设置为x86(在IDE的该项目的“属性”中)。新的Resharper 5测试运行器显然检测到并将测试运行为32位。没有必要弄乱corflags。

相关问题