Как мы интегрировали библиотеку Libgit2 в Windows-приложение Visual Studion 2010

Я загрузил две библиотеки DLL (libgit2sharp.dll и git2.dll) с сайта этого сайта.

После этого я успешно добавил Libgit2sharp.dll, добавив ссылку в свое приложение .NET Windows. Теперь, когда я добавляю git2.dll по ссылке в своем приложении .NET для Windows, возникает ошибка:

a reference to 'C:\User\nitesh\git2.dll' could not be added please make sure that the file is accessible and that it is a valid assembly or COM component

Может ли кто-нибудь помочь мне понять проблему?


person NiteshOO7    schedule 17.04.2014    source источник


Ответы (1)


Я загрузил две библиотеки DLL (libgit2sharp.dll и git2.dll) с сайта этого сайта.

Во-первых, это не тот канал распространения, к которому команда libgit2/libgit2sharp имеет какое-либо отношение.

Установить как пакет NuGet:

Официальные выпуски доступны в виде пакета NuGet, если вы предпочитаете предварительно загрузить -встроенные источники. См. этот сообщение, в котором объясняется, как установить диспетчер пакетов NuGet в Visual Studio.

Это самый простой способ сделать LibGit2Sharp доступным для вашего проекта.

Сборка из исходного кода:

Вы можете скачать исходный код и собрать код C# в LibGit2Sharp.dll с https://github.com/libgit2/libgit2sharp, который включает предварительно созданную версию git2.dll, которая работает для конкретной версии кода C#.

Самый простой способ построить сборку — запустить файл build.libgit2sharp.cmd. Это создаст папку Build, в которой вы найдете LibGit2Sharp.dll, и папку NativeBinaries с собственными двоичными файлами.

Теперь, когда я добавляю git2.dll, добавляя ссылку в свое приложение .NET для Windows, возникает ошибка

Что касается сообщения об ошибке, похоже, вы пытаетесь добавить git2.dll в проект, как если бы это была сборка CLR/.NET. Однако он построен на C и не является чем-то, с чем VS будет делать что-то полезное. Вам не нужно добавлять его в свой проект.

Он должен быть доступен для загрузки libgit2sharp. На следующем графике показана иерархия папок, которую ожидает libgit2sharp.

NativeBinaries+
              |___amd64+
                       |___git2-{shortsha}.dll
                       |___git2-{shortsha}.pdb
              |_____x86+
                       |___git2-{shortsha}.dll
                       |___git2-{shortsha}.pdb

Примечание. Эта структура папок будет динамически создана в выходной папке вашего проекта, если вы установили LibGit2Sharp как пакет NuGet. Однако, если вы построили проект из исходного кода, вам придется скопировать эту структуру папок как часть процесса сборки вашего проекта самостоятельно.

person Carlos Martín Nieto    schedule 17.04.2014
comment
В соответствии с вашими инструкциями мы загружаем исходный код с этого сайта github.com/libgit2/libgit2sharp, после чего собираем его и выполните build.libgit2sharp.cmd после выполнения cmd, мы добавим libgit2sharp.dll в наше приложение по этому пути, например, где находится код\\libgit2sharp-vNext\LibGit2Sharp\bin\Debug. Теперь мы можем создать репозиторий в приложении по коду, а затем выдать ошибку. ошибка: - Инициализатор типа для «LibGit2Sharp.Core.NativeMethods» вызвал исключение. мы пишем такой код, используя (Repository repo = new epository(@D:\LibGit2Sharp1)){ foreach (Commit commit in repo.Commits){ } - person NiteshOO7; 17.04.2014
comment
Эта ошибка возникает из-за того, что вы не можете найти dll libgit2 или имеете неправильную версию. Убедитесь, что имя файла имеет соответствующий суффикс, указывающий на версию, которая соответствует версии libgit2sharp. - person Carlos Martín Nieto; 17.04.2014
comment
@NiteshOO7 См. примечание в ответе: иерархия папок NativeBinaries должна жить рядом с LibGit2sharp.dll после сборки проекта. - person nulltoken; 17.04.2014
comment
Можете ли вы сказать мне, ребята, что мы добавляем обе dll (LibGit2sharp.dll и git2.dll) в наше приложение. Я либо только одну dll (LibGit2sharp.dll) в нашем приложении. И, ребята, я просил вас, если вы можете, вы пришлете рабочий dll в этом почтовом идентификаторе [email protected] - person NiteshOO7; 21.04.2014