-
-
Notifications
You must be signed in to change notification settings - Fork 178
Description
When executing "dotnet build" with Nerdbank.GitVersioning as a dependency (using LibGit2), the build fails with a DLLNotFoundException for the DLLImportAttribute
C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: The "Nerdbank.GitVersioning.Tasks.GetBuildVersion" task failed unexpectedly. C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: System.TypeInitializationException: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception. C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: ---> System.DllNotFoundException: Unable to load DLL 'git2-6777db8' or one of its dependencies: The specified module could not be found. (0x8007007E) C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at LibGit2Sharp.Core.NativeMethods.git_libgit2_init() C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at LibGit2Sharp.Core.NativeMethods.InitializeNativeLibrary() in LibGit2Sharp.dll:token 0x6000918+0x2 C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at LibGit2Sharp.Core.NativeMethods..cctor() in LibGit2Sharp.dll:token 0x6000910+0x3b C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: --- End of inner exception stack trace --- C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at LibGit2Sharp.Core.NativeMethods.git_libgit2_opts(Int32 option, UInt32 level, String path) C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at LibGit2Sharp.Core.Proxy.git_libgit2_opts_set_search_path(ConfigurationLevel level, String path) in LibGit2Sharp.dll:token 0x6000bc7+0x0 C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at LibGit2Sharp.GlobalSettings.SetConfigSearchPaths(ConfigurationLevel level, String[] paths) in LibGit2Sharp.dll:token 0x600025e+0x1a C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at Nerdbank.GitVersioning.LibGit2.LibGit2Context.OpenGitRepo(String path, Boolean useDefaultConfigSearchPaths) in NerdBank.GitVersioning.dll:token 0x6000251+0x3 C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at Nerdbank.GitVersioning.LibGit2.LibGit2Context..ctor(String workingTreeDirectory, String dotGitPath, String committish) in NerdBank.GitVersioning.dll:token 0x600023f+0x8 C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at Nerdbank.GitVersioning.GitContext.Create(String path, String committish, Boolean writable) in NerdBank.GitVersioning.dll:token 0x6000048+0x1b C:\Users\lollo\.nuget\packages\nerdbank.gitversioning\3.4.216\build\Nerdbank.GitVersioning.Inner.targets(17,5): error MSB4018: at Nerdbank.GitVersioning.Tasks.GetBuildVersion.ExecuteInner() in Nerdbank.GitVersioning.Tasks.dll:token 0x600009e+0x10d
This is stemming from 3 problems:
- MSBuildCore is missing the native libraries git2-6777db8
- The dll map XML file is ignored in dotnet CLI (due to it running .NET Core and/or missing System.Runtime.InteropServices.NativeLibrary type
- PInvoke is trying to find the DLL in the same directory as LibGit2Sharp.dll