我使用VS 2012。我的解决方案包含一个网站项目和一个项目库。
我只在我的项目库上安装了nuget包。
在我的库中,我创建了一个简单的类"GitRepo“来测试git访问。在构造函数中,我想访问存储库:
public GitRepo(string repoPathName)
{
m_Repo = new Repository(repoPathName);
}在我的网页后面的代码中,我尝试实例化一个GitRepo对象:
GitRepo repo = new GitRepo(repoPathName);我得到了没有更多细节的TypeInitializationException。是的,dll和本地库结构在文件树(由nuget包安装)中似乎是正确的。
我有一个简单的控制台程序解决方案,其中我添加了以前的库(添加现有对象)。在"main“函数中,我实例化了一个"GitRepo”对象...它工作得很好。
如果能得到一些帮助,我们将不胜感激。
下面是一个完整的例外:
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: 发布于 2015-02-26 22:09:15
nulltoken,感谢您的帮助。我已经启动了一个新的控制台项目,并将我的库添加到了另一个文件夹中。当我实例化我的"GitRepo“对象(来自我的库)时,没有异常。所以我检查了解决方案的目录树,我看到LibGit2Sharp.dll和NativeBinaries文件夹被自动添加到程序文件夹的bin/debug下。
因此,我检查了我的web项目的bin文件夹,我发现那里没有"NativeBinaries“文件夹。我手动添加它,现在没有更多的例外。
https://stackoverflow.com/questions/28739587
复制相似问题