使用Shims时,我在调试时遇到异常。虽然其他人报告了这个问题,但我发现的修复都没有帮助。这就是场景。虽然我在一个完整大小的项目中发现了这个,但我可以在一个简单的项目上重现它。我在使用我的工作计算机时才会遇到此异常。如果我在同事电脑或家用电脑上试用,我就不会收到错误。
Windows 7,完全打补丁。 VS Ultimate 2012,Update 4。 x64的默认处理器体系结构。 没有安装Typemock或其他模拟框架(我知道)。 解决方案中没有运行设置或测试设置(已在资源管理器中验证过)。
[TestMethod]
public void TestMethod1()
{
using (ShimsContext.Create())
{
}
}
如果我正常运行测试,没问题。但是,如果我尝试调试,我会在using语句中获得异常。
例外: 用户代码未处理Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException 的HResult = -2146233088 Message = UnitTestIsolation检测无法初始化。请重新启动Visual Studio并重新运行此测试 来源= Microsoft.QualityTools.Testing.Fakes 堆栈跟踪: 在Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InitializeUnitTestIsolationInstrumentationProvider() 在Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.CreateContext() 在Microsoft.QualityTools.Testing.Fakes.ShimsContext.Create() 在MyLogTest.UnitTest1.TestMethod1()中的c:\ Users \ XXXX \ Documents \ Visual Studio 2012 \ Projects \ MyLogTest \ MyLogTest \ UnitTest1.cs:第13行 InnerException:
(**用户ID XXXX为了安全**)。
如果我从我的工作计算机中取出那个失败的项目并将其放在我的家用计算机上(也是VS Ultimate 2012,更新4,Windows 7),我在调试时没有收到错误。
我尝试完全卸载VS(包括重命名Program Files中的旧VS文件夹)和全新安装,我仍然得到例外。
在绝望中我打开了Visual Studio的日志记录。我注意到的唯一显着差异是devenv.TpTrace.log
的日志中的以下内容诊断:RockSteady使用以下扩展名初始化:
诊断:处理队列.....
诊断:操作Dequeue:'LoadPlaylistOperation'
诊断:操作留在队列中:1
诊断:'RunWithDebugFromContextOperation',哈希码:12788809
诊断:
我试着寻找那个“RockSteady”,看看它来自哪里或者没有运气。当我执行相同的测试时,这些线路不会出现在我的家用计算机上。我在想我的机器上可能存在从SDK或其他导致问题的东西。我不知道上面的那些线是问题的根源,它只是我看到的唯一主要区别。
我已经被困在这几天了。任何帮助表示赞赏。