1

我在 Win8 机器上使用 Visual Studio 2012 RTM。我的 VS2012 安装在 D: 分区上。

我正在编写一个 CodedUI 测试项目。这个项目最初是用VS2010编写的,我用VS2012升级了它。

我在项目中引用了 11.0 版本的 CodedUITestFramework dll。

在 *.csproj 文件中,它说

 <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework,
 Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
 processorArchitecture=MSIL" />

项目建设成功。但是当我使用 ILDasm 检查程序集 DLL 时,清单显示如下:

.assembly extern Microsoft.VisualStudio.QualityTools.CodedUITestFramework
{
  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )                         // .?_....:
  .ver 10:0:0:0    <======Should be 11:0:0:0 here!!
}

而且我注意到虽然测试项目构建成功,但在 Windows 事件日志中记录了以下错误。

(vstest.discoveryengine.x86.exe,PID 8056,线程 9)枚举程序集时引发异常:Microsoft.VisualStudio.TestTools.Exceptions.EqtDataException:无法加载测试容器“e:\test.dll”或其依赖项之一. 错误详细信息:System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.VisualStudio.TestTools.UITest.Extension,Version=10.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。

但是我什至没有安装 VS2010,我在哪里可以有 10.0.0.0 版本的 DLL?

如果这是一个 VS2012 的 bug,那就太令人沮丧了。这让我疯狂。

在 Microsoft Connect 中创建了一个问题:

https://connect.microsoft.com/VisualStudio/feedback/details/758629/add-dll-reference-bugs-in-visual-studio-2012-version-11-0-50727-1-rtmrel

任何机构遇到同样的问题??

4

4 回答 4

2

如果您查看 UIMap.uitest 下的 UIMap.Designer.cs,您会注意到它是使用 10.0.* 构建的。

// ------------------------------------------------------------------------------
//  <auto-generated>
//      This code was generated by coded UI test builder.
//      Version: 10.0.0.0

...

[GeneratedCode("Coded UITest Builder", "10.0.40219.1")]

为您创建的每个 uitest 运行 codedUI 测试构建器并生成 UI 操作或替换现有的操作。这将自动生成具有正确版本的新 UIMap.Designer.cs 文件。

// ------------------------------------------------------------------------------
//  <auto-generated>
//      This code was generated by coded UI test builder.
//      Version: 11.0.0.0

...

[GeneratedCode("Coded UITest Builder", "11.0.50727.1")]
于 2012-10-18T17:15:29.003 回答
0

The reason for the Issue is the Microsoft.Services.TestTools.UITesting.Html.dll from CodeFirst has its dependencies based on VS 2010.

Downloading the source code from CodePlex and migrating to VS 2012 and getting the latest Microsoft.Services.TestTools.UITesting.Html.dll resolves the issue and it had worked.

于 2014-02-06T06:53:47.040 回答
0

Alex's solution is wrong,

Simply solution is replacing old refence with current version's dll

于 2014-01-20T14:43:52.977 回答
0

您可能会遇到上述错误的一个原因是您可能已经命名了包含自动化项目的所有文件的文件夹,中间有空格。假设您已将该文件夹命名为“测试用户”。在这种情况下,您将收到上述错误。解决方案是通过文件 -> 源代码管理 -> 工作区更改 VSTS 中的本地路径来移动这些文件夹,然后选择您的工作区(它应该与您的计算机名称匹配)并单击编辑。在您的机器中创建一个新文件夹(文件夹名称中没有空格)并将其映射到此处。

于 2013-01-22T10:26:14.787 回答