Инициализатор типа для LibGit2Sharp.Core.NativeMethods выдал исключение - PullRequest
0 голосов
/ 29 мая 2018

Я работаю над консольным приложением C # (.NET 4.6.1), и при запуске его исполняемого файла я получаю следующую ошибку:

Инициализатор типа для LibGit2Sharp.Core.NativeMethods вызвал исключение.

Описание ошибки:

в LibGit2Sharp.Core.NativeMethods.git_repository_open (git_repository * & репозиторий, путь к FilePath)
в LibGit2Sharp.Core.Proxy.git_reringoryпуть)
в LibGit2Sharp.Repository..ctor (путь строки, параметры RepositoryOptions, RepositoryRequiredParameter requiredParameter)
в LibGit2Sharp.Repository..ctor (путь строки)
в MyProj.MyClass.GetMaxBranchVersion (строка String)1015 *

Внутреннее исключение:

System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'System.Runtime.InteropServices.RuntimeInformation, Version = 0.0.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a 'или одна из его зависимостей.Система не может найти указанный файл.Имя файла: 'System.Runtime.InteropServices.RuntimeInformation, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' в LibGit2Sharp.Core.Platform.get_OperatingSystem () в LibGit2Sharp.Core.NctorMothods * 10) ())

Теперь код проекта работает нормально при отладке или просто при запуске в Visual Studio - возникает ошибка при попытке запустить его как исполняемый файл.Проблема на самом деле не в самом методе GetMaxBranchVersion , потому что я пытался вообще его не вызывать, и это все равно только вызывало ошибку при запуске следующего метода.

Я попытался добавить следующие элементы конфигурации в файл .csproj согласно этому ответу , но, к сожалению, это не решило мою проблему:

<PropertyGroup>
..
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
..
</PropertyGroup>

Что может бытьвозможная причина?

Я понимаю, что предоставленная информация может быть немного, но я могу предоставить дополнительную информацию, если это необходимо.

1 Ответ

0 голосов
/ 30 мая 2018

Мне удалось решить мою проблему, выполнив следующее:

  1. Изменил Target Framework для проекта на .NET 4.7
  2. Скопировал System.Runtime.InteropServices.RuntimeInformation.dll в папку, в которую япытался запустить исполняемый файл из

. В этот момент я получил другую ошибку:

System.DllNotFoundException: Невозможно загрузить DLL 'git2-6311e88': указанный модульневозможно найти.(Исключение из HRESULT: 0x8007007E) в LibGit2Sharp.Core.NativeMethods.git_libgit2_init ()
в LibGit2Sharp.Core.Благодаря этому ответу я смог преодолеть эту проблему, скопировав также git2-6311e88.dll (в моем случае требовалась версия x86, которая обычно находится на вашем bin/debug илиПапка bin/release, под lib/os-version, в моем случае lib/win32)

И вуаля!Оно работает!Удачи всем, кто борется с той же проблемой.

...