我在VS2010(Ultimate)中创建了一个CodedUI测试,并从中调用了此测试 一个控制台应用程序(它构建在同一个.Net Framework 4中)。这在我的机器或安装了VS2010 Ultimate的任何其他机器上运行良好。 当我尝试在没有VS2010 Ultimate的32位机器上运行CodedUI测试时,它会抛出以下错误:
Unhandled Exception: Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException: Cannot perform '' on the control. Additional Details:
The control details were not specified. ---> System.Runtime.InteropServices.COMException:
Retrieving the COM class factory for component with CLSID {6DA215C2-D80D-42F2-A
514-B44A16DCBAAA} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
at Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.InitPlayback()
at Microsoft.VisualStudio.TestTools.UITesting.Playback.Initialize()
--- End of inner exception stack trace ---
at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowComException(COMException innerException, IPlaybackContext context)
at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowException(SystemException exception, IPlaybackContext context)
at Microsoft.VisualStudio.TestTools.UITesting.Playback.Initialize()
at CitrixLANConsole.Program.Main(String[] args) in c:\users\<username>\documents\visual studio 2010\Projects\CitrixLANConsole\CitrixLANConsole\Program.cs:
line 27.
有谁能告诉我如何在没有安装VS2010 Ultimate的机器上运行测试?
答案 0 :(得分:0)
我认为您的问题出在平台目标中:您正试图在x64
系统上运行32-bit
代码。更改应用程序的Target Platform
并再次运行测试。
问题的原因是你试图在测试中操纵错误的类。
嗯,我认为Ultimate
包装中有些东西是你无法在其他机器上获得的。不能肯定地从你的堆栈跟踪中说出来,但是试着找到你所缺少的类,并将库放在GAC
中。
regsvr32
没有的原因是.NET库试图在GAC中找到所需的一个库,而不是在某些寄存器条目中。有关MSDN的更多信息,请参阅。