c#dll microsoft dll异常
我刚刚在我的项目中添加了c#dll microsoft dll异常,c#,exception,dll,C#,Exception,Dll,我刚刚在我的项目中添加了Microsoft.VisualStudio.TestTools.UITesting,我尝试使用ImageComparer`类,但运行该类时出错 private void Form1_Load(object sender, EventArgs e) { Image a = Image.FromFile(@"C:\Users\itapi\Desktop\a.png"); Image b = Image.FromFile(@"C:\U
Microsoft.VisualStudio.TestTools.UITesting
,我尝试使用ImageComparer`类,但运行该类时出错
private void Form1_Load(object sender, EventArgs e)
{
Image a = Image.FromFile(@"C:\Users\itapi\Desktop\a.png");
Image b = Image.FromFile(@"C:\Users\itapi\Desktop\b.png");
ImageComparer.Compare(a,b);
}
错误是
类型为“System.TypeInitializationException”的未处理异常
发生在Microsoft.VisualStudio.TestTools.UITesting.dll中
其他信息:的类型初始值设定项
'Microsoft.VisualStudio.TestTools.UITest.Extension.UITestUtilities'
抛出了一个异常
有人知道这里出了什么问题吗
这是客栈
System.TypeInitializationException:的类型初始值设定项
'Microsoft.VisualStudio.TestTools.UITest.Extension.UITestUtilities'
引发了异常。-->System.IO.FileNotFoundException:无法
加载文件或程序集
'Microsoft.VisualStudio.TestTools.UITest.WindowsStoreUtility,
版本=12.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a'或
它的一个依赖项。系统找不到指定的文件。在 Microsoft.VisualStudio.TestTools.UITest.Extension.UITestUtilities..cctor() ---内部异常堆栈跟踪结束---位于Microsoft.VisualStudio.TestTools.UITest.Extension.UITestUtilities.CheckForNull(对象 参数,字符串parameterName)位于 Microsoft.VisualStudio.TestTools.UITesting.ImageComparer.CompareInternal(图像 实际图像、预期图像、色差参数公差、, 图像和diffImage,布尔createOutImage)位于 Microsoft.VisualStudio.TestTools.UITesting.ImageComparer.Compare(图像 实际图像、预期图像、色差参数公差)位于 Microsoft.VisualStudio.TestTools.UITesting.ImageComparer.Compare(图像 实现图像,图像预期图像)位于 WindowsFormsApplication4.Form1.Form1\u加载(对象发送方,事件参数e) 在c:\Users\itapi\OneDrive\??\Visual Studio中 2013\Projects\WindowsFormsApplication4\WindowsFormsApplication4\Form1.cs:line 三十 无法加载文件或程序集“Microsoft.VisualStudio.TestTools.UITest.WindowsStoreUtility…” 这完全是意料之中的事。此程序集只能在Visual Studio中使用。它位于C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateSassemblies目录中,您的Winforms应用程序无法访问它。CLR永远也找不到它 Microsoft.VisualStudio.TestTools.UITesting.dll程序集也是如此,但您在bin\Debug目录中获得了一个副本,因为您引用了它 这些程序集仅用于创建单元测试,即使用“测试”>“运行”菜单项运行的单元测试。MSDN操作指南文章,用于创建编码的UI测试
可以使用复制缺少的程序集。但是使用集成单元测试功能当然是最好的,也是唯一一种可以在更新VS版本时获得最低限度保证的方法。这个问题让我困惑。为什么要关注异常而不是问题?您似乎想要比较图像。为什么不问问如何比较图像?快速搜索将产生许多结果,如。我搜索了
c#compare image
,这是第10个链接。之前的其他人也有承诺。您想要什么结果为真/假、百分比匹配、仅图像和exif数据不匹配确定、其他
另外,当我查看的文档时,签名与此问题中的示例代码不同。文档在这方面的使用似乎很差,是否应该像其他人所讨论的那样从Visual Studio内部使用它。内部异常是什么?@您的意思是什么?在try catch和inside catch块中添加代码以获取内部异常。如果捕获异常或使用调试器(请注意)您可以看到有一个内部异常。是什么?该程序集存储在C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateSassemblies目录中。离你发现它的地方不远。由于强调“私有”,它只能从VisualStudio本身使用。我想你可以复制它来解决你的问题。不要期望你的测试代码能够很好地移植到未来的VS版本中。Hans,你说得很有道理,这个解释对我很有用。我正在使用Selenium,Windows应用程序驱动程序,当我收到错误时,我正在按照下面的链接将测试用例链接到TFS。我仍然不太明白为什么微软会认为使用这个dll编写代码的开发人员会知道这只是为了在VisualStudio中工作,但现在我知道该怎么做了。就我个人而言,我只是引用了DLL。我不太关心将来的版本,现在的版本可以工作。