单元测试项目无法运行BuildShadowTask的v11

时间:2013-02-22 23:06:59

标签: unit-testing tfs msbuild visual-studio-2012

我有一个Web应用程序项目,我正在尝试迁移到.NET 4.5。我们正在构建一个安装了VS2010的构建服务器,但是它还包含VS2012的所有正确的引用程序集,并且安装了.NET 4.5框架。

运行包含私有访问器的单元测试项目时,构建失败并显示错误 -

System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\LocalPath\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll'

但是,如果我从

更改$(MSBuildExtensionsPath)\ Microsoft \ VisualStudio \ v11.0 \ TeamTest \ Microsoft.TeamTest.Targets文件,则构建将成功
<UsingTask TaskName="BuildShadowTask" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v11.0\TeamTest\Microsoft.VisualStudio.TestTools.BuildShadowsTask.dll"/>

<UsingTask TaskName="BuildShadowTask" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TeamTest\Microsoft.VisualStudio.TestTools.BuildShadowsTask.dll"/>

是否不再可以在VS2012上使用私有访问器?如果是这样,为什么Microsoft.VisualStudio.TestTools.BuildShadowsTask.dll v11失败,但v10成功了?

编辑这将在实际安装了VS2012的计算机上编译,因此我必须缺少程序集或注册表项。查看构建日志,在两个实例中,它都从v11文件夹加载BuildShadowTask。我想我的问题改为,是否可以在不安装Visual Studio 2012的情况下使用私有访问器?如果是这样,我需要做出哪些改变才能使这个目标成功?

1 个答案:

答案 0 :(得分:1)

VS2012中已弃用私有访问者,因此您无法使用VS2012创建私有访问者。这就是11.0 dll任务失败的原因。建议的替代方法是使用PrivateObject类或InternalsVisibleTo属性。