gpt4 book ai didi

c# - 无法确定用户的配置路径(尝试获取修订号时)

转载 作者:行者123 更新时间:2023-12-02 16:58:27 26 4
gpt4 key购买 nike

我在 Visual Studio 2010 中使用 SharpSVN dll 来获取最新的修订号,以便我可以使用该编号对我的项目进行版本控制。我尝试了下面的这段代码,但它给了我错误:

Can't determine the user's config path

我根本不明白这是什么意思。我想做的就是提供 svn 链接、我的凭据(例如用户名和密码)并获取最新的修订号。

这是我迄今为止尝试过的代码:

using(SvnClient client = new SvnClient())
{
//client.LoadConfiguration(Path.Combine(Path.GetTempPath(), "Svn"), true);
Collection<SvnLogEventArgs> list;
client.Authentication.DefaultCredentials = new NetworkCredential("john.locke", "s7y5543a!!");

SvnLogArgs la = new SvnLogArgs();
client.GetLog(new Uri("https://100.10.20.12/svn/P2713888/trunk/src/"), la, out list);

string sRevisionNumber = string.Empty;
int iRevisionNumber = 0;
foreach(SvnLogEventArgs a in list)
{
if (Convert.ToInt32(a.Revision) > iRevisionNumber)
{
iRevisionNumber = Convert.ToInt32(a.Revision);
}
}
RevisionNumber.Text = iRevisionNumber.ToString();
}

也可以选择其他获取修订号的方式作为答案。

最佳答案

我也遇到了这个问题——在使用之前需要在 SvnClient 上查找/设置属性。这是我最终使用的。尝试使用此方法而不是仅仅实例化您的客户端对象 - 如果配置文件夹尚不存在,它将自动创建它:

private SvnClient GetClient()
{
SvnClient client = new SvnClient();

// Note: Settings creds up here is optional
// client.Authentication.DefaultCredentials = _creds;

string configPath = Path.Combine(Path.GetTempPath(), "sharpsvn");
if (!Directory.Exists(configPath))
{
Directory.CreateDirectory(configPath);
}
client.LoadConfiguration(configPath, true);

return client;
}

或者,如果您想最小化文件 IO 检查以查看目录是否存在,您可以尝试 LoadConfiguration,并且仅在调用失败时创建并重新分配目录,但每次检查都会更简单。

无论如何,您都可以使用以下代码获取某个位置的最新版本号:

public long GetLatestRevisionNumber(Uri svnPath)
{
using (SvnClient client = GetClient())
{
SvnInfoEventArgs info;
client.GetInfo(svnPath, out info);
return info.LastChangeRevision;
}
}

关于c# - 无法确定用户的配置路径(尝试获取修订号时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14849515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com