VS2012没能保住在* .csproj的文件,并一致DLL版本集清单,一个VS2012的错误?(V

2019-09-21 08:51发布

我在Win8的盒子使用Visual Studio 2012 RTM。 我的VS2012安装在d:分区。

我写一个CodedUI测试项目。 该项目最初是写有VS2010和我一起VS2012升级它。

我referernce的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,版本= 10.0.0.0,文化=中性公钥= 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

任何机构达到了同样的问题?

Answer 1:

如果你看看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")]

运行每个codedUI测试建设者uitest您创建和生成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")]


Answer 2:

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



Answer 3:

亚历克斯的解决方案是错误的,

简单的解决方案与当前版本的DLL替换旧refence



Answer 4:

究其原因,问题是从CodeFirst的Microsoft.Services.TestTools.UITesting.Html.dll具有基于VS 2010的依赖关系。

下载CodePlex从源代码,并迁移到VS 2012和获取最新的Microsoft.Services.TestTools.UITesting.Html.dll解决该问题,它已经奏效。



文章来源: VS2012 failed to keep consistent DLL version in *.csproj file and assembly manifest, a VS2012 bug?