kentcb / PCLMock

A simple mocking framework in a PCL.
MIT License
45 stars 8 forks source link

Microsoft.code analysis update #35

Open pasn opened 6 years ago

pasn commented 6 years ago

I have an issue with the newest nuget of PCLMock (4.0.0 right now), and it seems reproducible in current master. When I launch console with only vs2017 installed, I've got the following exception:

Failed to generate code: System.AggregateException: One or more errors occurred. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Threading.Tasks.Dataflow, Version=4.5.24.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
3>               at Microsoft.Build.BackEnd.Logging.LoggingService.ProcessLoggingEvent(Object buildEvent, Boolean allowThrottling)
3>               at Microsoft.Build.BackEnd.Logging.LoggingService.LogInvalidProjectFileError(BuildEventContext buildEventContext, InvalidProjectFileException invalidProjectFileException)
3>               at Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary(ILoggingService loggingServiceForEvaluation)
3>               at Microsoft.Build.Evaluation.Project.Initialize(IDictionary`2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectLoadSettings loadSettings)
3>               at Microsoft.Build.Evaluation.Project..ctor(ProjectRootElement xml, IDictionary`2 globalProperties, String toolsVersion, String subToolsetVersion, ProjectCollection projectCollection, ProjectLoadSettings loadSettings)
3>               at Microsoft.CodeAnalysis.MSBuild.ProjectFileLoader.<LoadProjectAsync>d__5.MoveNext()

This may be fixed by putting the dll into GAC, but you have to do it on every developer's machine. Therefore I tried to upgrade Microsoft.CodeAnalysis nuget packages to the newest versions and it fixed the problem for me.

I had to increase minimum .Net framework version because the newest nugets rely on .Net standard 1.3 which is implemented for .Net 4.6.0 and newer.