生成 Microsoft 假货时出现 NullReferenceException,从而阻止编译

NullReferenceException when generating Microsoft fakes preventing compilation

提问人:Alex Gagné 提问时间:5/23/2020 最后编辑:Alex Gagné 更新时间:5/27/2020 访问量:147

问:

我有一个使用 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:

奇怪的是,这个项目在我以前使用的计算机上正确编译。

C# visual-studio nullreferenceexception microsoft-fakes

评论


答:

0赞 Alex Gagné 5/27/2020 #1

这似乎是 Visual Studio 2019 版本 16.6.0 中的一个错误。

根据此错误报告: https://developercommunity.visualstudio.com/content/problem/1046515/visual-studio-2019-1660-microsoft-fakes-issue.html

这似乎也与我的问题相对应,因为我的旧计算机使用旧版本的 VS2019,而我的最新计算机使用最新的 VS 2019 版本。