C# 有人能为ImageCompare方法提供一个例子吗?

C# 有人能为ImageCompare方法提供一个例子吗?,c#,.net,class,types,static,C#,.net,Class,Types,Static,我正在尝试使用Visual Studio 2013 Pro比较两幅图像。MSDN提供了有关ImageComparer.Compare的信息(),可惜我无法在代码中实现它。在代码的最后一行,我被告知“名称‘Compare’在当前上下文中不存在”。有人能帮忙吗?谢谢 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using Micr

我正在尝试使用Visual Studio 2013 Pro比较两幅图像。MSDN提供了有关ImageComparer.Compare的信息(),可惜我无法在代码中实现它。在代码的最后一行,我被告知“名称‘Compare’在当前上下文中不存在”。有人能帮忙吗?谢谢

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using Microsoft.VisualStudio.TestTools.UITesting;


namespace Intranet.SmokeTests
{
public class Intranet_Login : Intranet_Setup
{
    public List<string> IntranetLoginTest(string BrowserURL, string Host, int Port)
    {
            Image expected = Image.FromFile(@"\\webdriver\ImageVerification\Expected\IntranetHome.png");
            Image actual = Image.FromFile(@"\\webdriver\ImageVerification\Actual\IntranetHome.png");

            bool equal = Compare(actual, expected);
    }
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用系统图;
使用Microsoft.VisualStudio.TestTools.UITesting;
命名空间Intranet.smoketest
{
公共类Intranet\u登录:Intranet\u设置
{
公共列表内部登录测试(字符串浏览器URL、字符串主机、int端口)
{
Image expected=Image.FromFile(@“\\webdriver\ImageVerification\expected\intranethode.png”);
Image-actual=Image.FromFile(@“\\webdriver\ImageVerification\actual\intranethode.png”);
bool equal=比较(实际、预期);
}
}
}

您必须这样做:

bool equal = ImageComparer.Compare(actual, expected);
当您想在中使用类的静态成员时,必须始终首先使用类来限定它。否则,编译器将尝试在当前类上定位该成员


IntranetLoginTest
可能存在的另一个问题是,它应该返回
List
的一个实例,但它没有。我还必须说,我觉得奇怪的是,您正在使用一种建议它执行身份验证机制测试的方法进行图像比较测试。

结果表明,没有添加引用的dll的正确版本。完整答案如下:

1-使用nuget安装
System.Drawing.Common

2-参考C:\Program Files(x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\TestPlatform中的Microsoft.VisualStudio.TestTools.UITesting.dll

        Image expected = Image.FromFile(@"2020-09-01_15h31_24.png");
        Image actual = Image.FromFile(@"2020-09-01_15h31_30.png");
        Image difference = null;

        var isTestPass = ImageComparer.Compare(actual, expected, out difference);

        if (!isTestPass)
            difference.Save("diff.png");

        Console.ReadLine();
期望

实际的

差别

当我尝试这样做时,也会出现同样的错误。我怀疑我遗漏了一个参考资料或一些“次要”的东西。但是我已经将Microsoft.VisualStudio.TestTools.UITesting引用添加到项目中。您不可能有完全相同的错误。在这种情况下,如果您错过了一个参考,则消息将是找不到
ImageComparer
。在任何情况下,请确保您的测试项目引用了Microsoft.VisualStudio.TestTools.UITesting。如果确实如此,并且您在文件顶部使用的语句与示例中的语句相同,那么这应该可以正常编译。否则你会有另一个问题,其他地方。在这种情况下,我的问题似乎在其他地方。。。谢谢你证实我的想法。@WarioX不客气,但我还是很好奇你的问题可能是什么。:)如果您可以使用我的解决方案共享任何新信息/错误消息,我将很乐意提供帮助。