首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网站项目中的LibGit2Sharp TypeInitializationException

网站项目中的LibGit2Sharp TypeInitializationException
EN

Stack Overflow用户
提问于 2015-02-26 18:11:07
回答 1查看 333关注 0票数 1

我使用VS 2012。我的解决方案包含一个网站项目和一个项目库。

我只在我的项目库上安装了nuget包。

在我的库中,我创建了一个简单的类"GitRepo“来测试git访问。在构造函数中,我想访问存储库:

代码语言:javascript
复制
public GitRepo(string repoPathName)
{
    m_Repo = new Repository(repoPathName);
}

在我的网页后面的代码中,我尝试实例化一个GitRepo对象:

代码语言:javascript
复制
GitRepo repo = new GitRepo(repoPathName);

我得到了没有更多细节的TypeInitializationException。是的,dll和本地库结构在文件树(由nuget包安装)中似乎是正确的。

我有一个简单的控制台程序解决方案,其中我添加了以前的库(添加现有对象)。在"main“函数中,我实例化了一个"GitRepo”对象...它工作得很好。

如果能得到一些帮助,我们将不胜感激。

下面是一个完整的例外:

代码语言:javascript
复制
System.TypeInitializationException was unhandled by user code
  HResult=-2146233036
  Message=Une exception a été levée par l'initialiseur de type pour 'LibGit2Sharp.Core.NativeMethods'.
  Source=LibGit2Sharp
  TypeName=LibGit2Sharp.Core.NativeMethods
  StackTrace:
       à LibGit2Sharp.Core.NativeMethods.git_repository_open(RepositorySafeHandle& repository, FilePath path)
       à LibGit2Sharp.Core.Proxy.git_repository_open(String path)
       à LibGit2Sharp.Repository..ctor(String path, RepositoryOptions options)
       à CDM.ESD1_WSGINSTALL.Business.GitRepo..ctor(String repoPathName) dans c:\PRIV\Projects\ESD1\ESD1_WSGINSTALL\ESD1_WSGINSTALL.Business\GitRepo.cs:ligne 39
       à CDM.ESD1WSGINSTALL.Commands.CharteView.DoBuildRPM(String id) dans c:\PRIV\Projects\ESD1\ESD1_WSGINSTALL\ESD1_WSGINSTALL\App_Code\Commands\CharteViewActivity\CharteView.cs:ligne 262
  InnerException: System.DllNotFoundException
       HResult=-2146233052
       Message=Impossible de charger la DLL 'git2-e0902fb': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
       Source=LibGit2Sharp
       TypeName=""
       StackTrace:
            à LibGit2Sharp.Core.NativeMethods.git_libgit2_init()
            à LibGit2Sharp.Core.NativeMethods.LibraryLifetimeObject..ctor()
            à LibGit2Sharp.Core.NativeMethods..cctor()
       InnerException: 
EN

回答 1

Stack Overflow用户

发布于 2015-02-26 22:09:15

nulltoken,感谢您的帮助。我已经启动了一个新的控制台项目,并将我的库添加到了另一个文件夹中。当我实例化我的"GitRepo“对象(来自我的库)时,没有异常。所以我检查了解决方案的目录树,我看到LibGit2Sharp.dll和NativeBinaries文件夹被自动添加到程序文件夹的bin/debug下。

因此,我检查了我的web项目的bin文件夹,我发现那里没有"NativeBinaries“文件夹。我手动添加它,现在没有更多的例外。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28739587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档