我有一个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的情况下使用私有访问器?如果是这样,我需要做出哪些改变才能使这个目标成功?
答案 0 :(得分:1)
VS2012中已弃用私有访问者,因此您无法使用VS2012创建私有访问者。这就是11.0 dll任务失败的原因。建议的替代方法是使用PrivateObject
类或InternalsVisibleTo
属性。