VS2012无法在* .csproj文件和程序集清单中保持一致的DLL版本,VS2012错误?

时间:2012-08-18 15:45:38

标签: visual-studio visual-studio-2012 coded-ui-tests

我在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,Thread 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错误,那将太令人沮丧了。这让我发疯了。

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 个答案:

答案 0 :(得分: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")]

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Alex的解决方案错了,

简单的解决方案是用当前版本的dll替换旧栅栏

答案 3 :(得分:0)

问题的原因是来自CodeFirst的Microsoft.Services.TestTools.UITesting.Html.dll具有基于VS 2010的依赖性。

从CodePlex下载源代码并迁移到VS 2012并获取最新的Microsoft.Services.TestTools.UITesting.Html.dll解决了这个问题并且它已经运行了。