我不是P4.NET插件方面的专家,但我想在组合框中为用户显示现有的工作区,这样我就可以将p4.Client设置为选定的工作区。
using (var p4 = new P4Connection())
{
p4.Connect();
???
}如何获取现有工作区的列表?我认为实现这一点的命令行应该是
p4 clients -m 100 -u username发布于 2011-03-04 17:47:52
好吧,我别无选择,只能回答我自己的问题,因为代码太多了,不能作为注释插入到jhwist答案中。对不起,jhwist。我别无他法。
@appinger,我希望这个答案对你有帮助。我花了几个小时才弄明白这个api的工作原理。:)
cmbBoxPerforceWorkspaceLocation只是你的工作区的组合框。顺便说一下,我正在使用Winforms。
我需要从windows用户名中提取一个短名称。Windows用户名通常以xxxx\用户名开头。在我的代码中,我从长名称中提取用户名,并将其保存为短名称。如果您的网络设置不同,则此代码可能需要进行相应的更改。
让我知道它是否对你有效。
using (var p4 = new P4Connection())
{
p4.Connect();
var longName = WindowsIdentity.GetCurrent().Name;
var shortname = longName.Substring(longName.IndexOf("\\") + 1);
var records = p4.Run("clients", "-u", shortname);
cmbBoxPerforceWorkspaceLocation.Items.Clear();
foreach (P4Record record in records.Records)
{
cmbBoxPerforceWorkspaceLocation.Items.Add(record["client"]);
}
}发布于 2011-03-02 20:53:27
如果P4.Net的行为类似于官方的Perforce API,那么您可能希望运行:
p4.Run("clients", "-m 100 -u username")或者类似的。灵感来自P4Ruby文档。
发布于 2011-03-17 07:32:45
P4.Net被设计成类似于脚本API,而脚本API又是围绕命令行界面设计的。它绝对没有一个直观的面向对象的界面……这在一开始是令人不快的。但是,如果你从命令行开始(特别是-ztag标志),并把你的应用需要的所有数据/动作拼凑在一起,你会发现使用P4.Net相当容易。由于它类似于所有的脚本API,如果您愿意,您会发现选择Python或Ruby是很自然的:-)
https://stackoverflow.com/questions/5166546
复制相似问题