我有一个正在尝试迁移到 .NET 4.5 的 Web 应用程序项目。我们正在从 TFS 构建到安装了 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 的情况下使用私有访问器?如果是这样,我需要做出什么改变才能使这个目标成功?