2010-02-18 41 views
4

在.NET 4中,加載.NET 2混合模式程序集需要在應用程序項目的app.config文件的startup element中設置useLegacyV2RuntimeActivationPolicy="true"在VS 2010中爲測試項目設置useLegacyV2RuntimeActivationPolicy

如何爲測試項目設置(以及是否有必要)?我得到的測試主機的一些非常奇怪的行爲,但僅適用於直接使用CLR 2混合模式組件的測試,所以我懷疑這可能是罪魁禍首...

接收實際的錯誤是:

測試適配器'UnitTestAdapter'在運行測試'MyTest'時引發異常。異常是由調用的目標引發的。嘗試讀取或寫入受保護的內存。這通常表明其他內存已損壞。

但是,它並未顯示爲測試失敗,而是顯示爲錯誤。異常似乎發生在單元測試適配器中,而不是我的代碼。

回答

2

據我所知,沒有辦法通過UI設置這個選項。我不確定這是否意圖成爲受支持的場景。它絕對看起來應該是。你能否提出一個關於連接的錯誤來追蹤這個問題?

在此同時,你應該能夠通過設置在QTAgent32應用程序的選項,以解決這個問題。這是實際上是用來運行單元測試過程,它位於

C:\ Program Files文件(x86)的\微軟的Visual Studio 10.0 \ Common7 \ IDE \ QTAgent32.exe

是的,非常冒險的解決方案,但希望它解除您的阻礙。

+0

我會提交一個關於連接的錯誤 - 雖然我試圖縮小導致這種行爲的原因,但是很難說清楚。它似乎只發生在使用混合模式程序集標記[ExpectedException]的單元測試中。這可能是別的。 – 2010-02-18 21:13:23

+0

在進一步調查中,QTAgent32的配置已經有了這個指定 - 這必須是其他問題。 *感到沮喪* – 2010-02-18 21:13:59

+0

由於連接建議標記爲答案。剛剛提交:https://connect.microsoft.com/VisualStudio/feedback/details/534700/odd-failures-in-test-projects-with-clr-2-mixed-mode-assemblies – 2010-02-18 21:44:18

相關問題