我想调用一个subversion存储库,但我想用C#编写它.有谁知道任何好的图书馆?
我们有一个报告生成器.每日,它将其数据写入excel文件.
出于版本控制和文件数据安全的原因,我们需要更改此文件,并将更改提交到存储库.
您推荐使用过任何.net SVN API吗?
继我之前(回答)问题的尾巴之后......
SharpSvn简化了Subversion客户端API的调用:
SvnClient client = new SvnClient();
client.Authentication.DefaultCredentials = new NetworkCredential(username, password);
client.CheckOut(new Uri("http://xxx.yyy.zzz.aaa/svn/repository"), workingCopyDir);
Run Code Online (Sandbox Code Playgroud)
另一方面,从C/C++调用客户端API,如minimal_client.c所示,需要编码"更接近金属",就像在Subversion上一样.
在Visual Studio 2003中是否存在用于C++的Windows库,它提供了比minimal_client使用的更简单的接口?
如果没有,是否有VS2003 C++项目(.vcproj文件)演示如何运行minimal_client?我能够编译minimal_client.c并使用以下库链接它:
libsvn_client-1.lib libsvn_delta-1.lib libsvn_diff-1.lib libsvn_fs-1.lib libsvn_fs_base-1.lib libsvn_fs_fs-1.lib libsvn_ra-1.lib libsvn_ra_local-1.lib libsvn_ra_svn-1.lib libsvn_repos-1.lib libsvn_subr-1.lib libsvn_wc-1.lib libapr-1.lib libaprutil-1.lib xml.lib libneon.lib
但是当我运行我的应用程序时(在调试器中或在没有调试的情况下启动发布版本),它运行大约20秒而没有命中main()的第一行,然后抛出此异常:
未知模块中出现未处理的"System.TypeLoadException"类型异常.
附加信息:无法
apr_pool_t
从程序集minimal_client,Version = 1.0.3477.16033,Culture = neutral,PublicKeyToken = null 加载类型.
我尝试过libsvn_ .lib和svn_ .lib的各种组合无济于事.
对我做错了什么的想法?
编辑:我开始使用"Win32控制台项目"(仍然在VS2003中),我现在能够调试我的应用程序的前几行.但现在,在这条线上:
if (svn_cmdline_init ("minimal_client", stderr) != EXIT_SUCCESS)
Run Code Online (Sandbox Code Playgroud)
我得到一个不同的异常(在调试器中或启动发布版本而不调试):
0x7c91b21a处的未处理异常
Win32ConsoleProject_minimal_client.exe
:0xC0000005:访问冲突写入位置0x00000010.
编辑:这个线程解释说这个错误是我的应用程序中的svn和stderr之间的CRT不匹配.如果我不想构建Svn以便它们匹配(我不想),我可以传递NULL而不是stderr(假设我愿意做没有消息去stderr)当我这样做时,我的应用程序正确运行.