提问人:Alex Gagné 提问时间:5/23/2020 最后编辑:Alex Gagné 更新时间:5/27/2020 访问量:147
生成 Microsoft 假货时出现 NullReferenceException,从而阻止编译
NullReferenceException when generating Microsoft fakes preventing compilation
问:
我有一个使用 Fakes 的单元测试项目,构建它失败,但没有生成任何错误或警告。设置为“正常”详细程度时,生成输出显示 0 个错误和 0 个警告:
1>Build FAILED.
1> 0 Warning(s)
1> 0 Error(s)
1>
1>Time Elapsed 00:00:05.27
========== Build: 0 succeeded, 1 failed, 13 up-to-date, 0 skipped ==========
在构建输出的早期查看时,我可以发现它何时失败:
1> 4:start> "C:\Program Files (x86)\Microsoft Visual
Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\Fakes\fakes.exe" @"Path\To\My\CsProj\obj\Debug\net48\Fakes\m\f.args"
1> Microsoft Fakes v16.600.320.22103 - .NET v4.0.30319
1> Copyright (c) Microsoft Corporation 2007-2010. All rights reserved.
1>
1> fakes
1> fakes generator 0 errors, 0 warnings
1>
1> Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
1> at Microsoft.QualityTools.Testing.Fakes.CodeGenerator.ExtendedReflection.Metadata.Roslyn.RoslynAssemblyImpl.get_TypeDefinitions()
1> at Microsoft.QualityTools.Testing.Fakes.Engine.FakesDriver.TryGetTypeDefinitions(AssemblyEx assembly, ICountable`1& typeDefinitions)
1> at Microsoft.QualityTools.Testing.Fakes.Engine.FakesDriver.ExecuteProtected()
1> at Microsoft.QualityTools.Testing.Fakes.Engine.FakesDriver.Execute()
1> at Microsoft.QualityTools.Testing.Fakes.FakesProgram.LaunchSingleFakes(FakesConsoleOptions
options)
1> at Microsoft.QualityTools.Testing.Fakes.FakesProgram.Main(String[] args)
1> at Microsoft.QualityTools.Testing.Fakes.Program.Main(String[] args)
1> 4:end> Fakes\mscorlib.fakes AccessViolation (-1073741819 - 0xc0000005)
1>
1>
1> Fakes compilation FAILED - 1.7001673s
1> result: unexpected exception occured (-1002 - 0xfffffc16)
1> Fakes assemblies:
奇怪的是,这个项目在我以前使用的计算机上正确编译。
答:
0赞
Alex Gagné
5/27/2020
#1
这似乎是 Visual Studio 2019 版本 16.6.0 中的一个错误。
这似乎也与我的问题相对应,因为我的旧计算机使用旧版本的 VS2019,而我的最新计算机使用最新的 VS 2019 版本。
评论