Perforce API的.NET封装器?

10

我目前正在开发一个使用.NET 4的应用程序,需要与Perforce服务器进行交互。

我的团队之前使用了Perforce API开发了某种包装器,但它缺少很多用例,并且没有正确处理异常。简而言之,它并不是我可以直接使用的东西,因为需要相当大的努力使其尽可能“防弹”。

我想知道是否存在适用于.NET的Perforce API包装器,可以正确处理异常?

在评估我们内部包装器的可用性时,我列出了应用程序需要处理的异常和用例列表(包装器需要抛出这些异常)。

这个列表相当详尽,这让我想知道是否已经存在某种包装器。


2
快速谷歌搜索 perforce c# api 的第一个结果:http://public.perforce.com/guest/robert_cowham/perforce/API/p4com/main/index.html - M.Babcock
我不是在寻找API,而是在寻找一个封装器。 - Hussein Khalil
3
来自M.Babcock发布的链接中写道:“P4API.Net是完全托管的代码,并且受到Perforce的全面支持。现在建议在Windows上使用此接口。” - Mitch Wheat
1
不幸的是,Babcock先生最初的回复并没有指向那个特定的页面,而是指向了一个在被编辑之前的Google页面。感谢您的评论,我会查看那个API。 - Hussein Khalil
2个回答

10

你可能需要查看由Perforce提供的P4API.NET库。或者你可以使用P4.NET库,这个库不是Perforce的官方版本,但已经存在一段时间了。

我已经多次使用过P4.NET,并且对它很满意。你可以在这里获取.NET 4库,因为原始库只支持.NET 2。


非常感谢Mike,我会查看它们。 你也用过P4API.NET吗?我想知道它们两者的比较。 - Hussein Khalil
我还没有使用过P4API.NET(它在我的待办列表上),但我简要地查看了文档。我记得当时认为它看起来有些类似于P4.NET。 - Mike O'Connor

3

同时,我也有一个(测试不够充分的)C#封装p4 exe的包装程序。与其他封装程序相比,主要(唯一?)优点是它可以在mono下构建和工作。它不依赖于COM或perforce C++库。

https://github.com/inorton/p4-sharp

P4Shell p = new P4Shell();

if ( p.Login("inb","password") )
    Console.WriteLine("logged in");

Console.WriteLine( p.WorkspaceName );
Console.WriteLine( p.WorkspaceRoot );

var dirs = p.Dirs("//nCipher/dev/home/inb/*");

foreach ( var d in dirs )
    Console.WriteLine(" + {0}", d);

附言:我并不是想通过将其存储在GitHub中来逗乐 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接