2013-02-22 67 views
2

我有一个web应用程序项目,我正试图迁移到.NET 4.5。我们正在将TFS构建到安装了VS2010的构建服务器上,但它也包含VS2012的所有正确引用程序集,并安装了.NET 4.5框架。单元测试项目失败正在运行v11的BuildShadowTask

当运行包含私人存取单元测试项目,构建失败,错误 -

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

但是,如果我改变$(MSBuildExtensionsPath)\微软\ 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

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

+0

我编辑了这个问题。它看起来像我_can_使用MSBuild时生成计算机已安装Visual Studio 2012,它使用相同的程序集。必须有一些我错过的东西。 – Steve 2013-02-25 14:18:01

相关问题