Skip to content

FileNotFoundException for System.Memory when using Visual Studio Build Tools 2017  #589

@KalleOlaviNiemitalo

Description

@KalleOlaviNiemitalo

I tried to upgrade Nerdbank.GitVersioning from 3.3.37 to 3.4.194 but got a System.IO.FileNotFoundException for the System.Memory assembly. This is with MSBuild.exe ("Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework") installed as part of Visual Studio Build Tools 2017 version 15.9.34, on Windows Server 2012 R2.

Project "C:\REDACTED.csproj.metaproj" (10:42) is building "C:\REDACTED.csproj" (11:9) on node 1 (default targets).
Project "C:\REDACTED.csproj" (11:9) is building "C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets" (127) on node 1 (GetBuildVersion_Properties target(s)).
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: The "Nerdbank.GitVersioning.Tasks.GetBuildVersion" task failed unexpectedly.
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: File name: 'System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018:    at Nerdbank.GitVersioning.ManagedGit.GitRepository..ctor(String workingDirectory, String gitDirectory, String commonDirectory, String objectDirectory)
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018:    at Nerdbank.GitVersioning.ManagedGit.GitRepository.Create(String workingDirectory)
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018:    at Nerdbank.GitVersioning.Managed.ManagedGitContext..ctor(String workingDirectory, String dotGitPath, String committish)
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018:    at Nerdbank.GitVersioning.GitContext.Create(String path, String committish, Boolean writable)
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018:    at Nerdbank.GitVersioning.Tasks.GetBuildVersion.ExecuteInner()
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018:    at MSBuildExtensionTask.ContextAwareTask.Execute()
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: 
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: WRN: Assembly binding logging is turned OFF.
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: Note: There is some performance penalty associated with assembly bind failure logging.
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: 
Done Building Project "C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\Nerdbank.GitVersioning.Inner.targets" (GetBuildVersion_Properties target(s)) -- FAILED.
Done Building Project "C:\REDACTED.csproj" (default targets) -- FAILED.
Project "C:\REDACTED.csproj.metaproj" (10:42) is building "C:\REDACTED.csproj" (5:81) on node 1 (default targets).

Process Monitor shows it loads C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\MSBuildFull\Nerdbank.GitVersioning.Tasks.dll and not C:\Users\REDACTED\.nuget\packages\nerdbank.gitversioning\3.4.194\build\MSBuildCore\Nerdbank.GitVersioning.Tasks.dll. That seems correct to me.

"C:\Users\REDACTED.nuget\packages\nerdbank.gitversioning\3.4.194\build\MSBuildFull\NerdBank.GitVersioning.dll" references the missing assembly:

.assembly extern System.Memory
{
  .publickeytoken = (CC 7B 13 FF CD 2D DD 51 )                         // .{...-.Q
  .ver 4:0:1:1
}

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions