LibGit2Sharp - это оболочка управляемого языка (. NET) вокруг собственной (C) библиотеки, libgit2 . Это слой P / Invoke , плюс слой для предоставления семантики NET (объекты и т. Д. c). Это означает, однако, что вам требуется и LibGit2Sharp.dll (сторона управляемого языка) и git2-xxxxxxx.dll
(соответствующая нативная библиотека), в которую он вызывает.
Собственная DLL является частью проекта LibGit2Sharp.NativeBinaries, от которого LibGit2Sharp зависит. Он должен быть установлен (транзитивно) при установке самого LibGit2Sharp. И хотя он пытается установить себя в качестве зависимости, которая будет установлена в выходном каталоге, поскольку собственные двоичные файлы не совсем понятны в мире проектов. NET, иногда это может не работать, особенно для более сложных типов проектов, таких как VSIX .
В конечном счете, LibGit2Sharp будет искать соответствующую нативную DLL вместе с тем, где она находится. Поэтому в выходном каталоге, из которого выполняется VSIX, попробуйте скопировать git2-xxxxxxx.dll
, являющийся частью проекта LibGit2Sharp.NativeBinaries, в это расположение.
После того, как вы определили правильное расположение для git2-xxxxxxx.dll
двоичный файл, чтобы жить, вы должны скопировать это как часть вашей установки для проекта. (например, Действие построения : Нет, Копировать в выходной каталог : Копировать всегда)