2010-09-14 113 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。

相關問題