我不是P4.NET插件的专家,但我想在组合框中显示用户的现有工作区,以便我可以将p4.Client设置为选定的工作区。
using (var p4 = new P4Connection())
{
p4.Connect();
???
}
如何获取现有工作区列表? 我认为实现这一目标的命令行将是
p4 clients -m 100 -u username
答案 0 :(得分:4)
答案 1 :(得分:2)
好吧我别无选择,只能回答我自己的问题,因为代码插入jhwist的答案太多了。抱歉jhwist。我别无选择。
@appinger,我希望你觉得这个答案很有帮助。花了我几个小时才弄明白这个api工作。 :)
cmbBoxPerforceWorkspaceLocation只是您工作区的组合框。我顺便使用Winforms。
我需要从Windows用户名中提取一个短名称。 Windows用户名通常以xxxx \\ username开头。在我的代码中,我从长名称中提取用户名并将其保存为短名称。如果您的网络设置不同,则此代码可能必须相应更改。
让我知道它是否适合你。
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"]);
}
}
答案 2 :(得分:0)
P4.Net旨在与脚本API类似,而脚本API又是围绕命令行界面设计的。它绝对没有一个直观的面向对象的界面......首先是放弃了。但是如果你从命令行开始(esp -ztag标志)并将你的应用程序所需的所有数据/动作拼凑在一起,你会发现使用P4.Net非常容易。而且由于它与所有脚本API类似,如果您愿意,您会发现拾取Python或Ruby是很自然的: - )