我有一个Azure Web应用程序,我昨天检查了TFS,没有任何问题.签入后,资源管理器将注入我们的nuget包并在成功构建时进行部署.
我做了一些更改(添加了一个类)并在今天签到.我在构建时收到此错误:

以下是帮助未来搜索机器人的报价:
退出代码1从进程返回:文件名'tf',参数'vc unshelve Gated_xxxxxx;******/loginType:OAuth /login:.,********/noprompt'.
我查看了日志响应,看看我是否获得了更多细节,但它说的完全相同.我没有更改我的密码或用户名.
我该如何调试这个以找出问题?
UPDATE
为了拯救他人免于头痛.问题是我们每个项目都有CI构建.来自另一个项目的文件也被窃听了.所以我在两个不同的解决方案(两个都转到同一个TFS服务器)上检查2个不同的项目.因此,请确保您只签入该项目!
一名团队成员使用git为在线视觉工作室提出拉取请求.它被批准并成功合并,但是我们想撤消它并在PR之前恢复到分支的状态.
在当地,我知道有办法做到这一点.它将获得我们的主分支的版本,恢复到分支中的早期版本,并像标准PR一样提交它.但是,VSTFS在线是否没有办法简单地"撤消"?
谢谢
更新
我很抱歉.我没有澄清这是针对TFS 2015的,显然这在2015年没有作为功能提供.
我需要更新我的MVC流程以允许外部OAuth流程,如本教程中所述.但是,我发现的每个教程都使用facebook/twitter/Microsoft,它已经内置了函数.我需要使用不同的服务器并传入令牌.我是客户,而不是服务器.
我的设置是使用标准SPA项目,登录等.我将不得不将其重定向到带有刷新令牌的页面,并将该刷新令牌存储为我将来对API的请求.我对此没有任何问题,我根本无法做第一次OAuth调用.似乎,我不是唯一一个遇到这种麻烦的人.
对于OAuth 2.0提供程序的此请求,我必须向请求添加访问令牌,然后用户可以登录并单击允许/拒绝.
POST {TokenPath} HTTP/1.1
Host: {AuthorizationServer}
Authorization: Basic {ThirdPartyAuthorizationCode}
Content-Type: application/x-www-form-urlencoded
grant_type = authorization_code
Run Code Online (Sandbox Code Playgroud)
然后我将通过access_token和过期日期从POST获得响应.
那么,我该怎么做呢?
我有一个String[],originalStringArray其中有重复的.所以{"dog","cat","dog","fish","dog","cat"}.
我想创建一个只返回恰好发生一定次数的字符串的函数.在这里,如果我说3,它将返回"狗"而不是"猫".
这是我目前的代码:
public ArrayList<String> returnMultiples(String[] originalStringArray,int requiredCount){
ArrayList<Integer> mCount = new ArrayList<>();
List<String> list = Arrays.asList(originalStringArray);
ArrayList<String> result = new ArrayList<>();
// Count occurrences in original string
for(String item: originalStringArray){
mCount.add(Collections.frequency(list,item));
}
// If frequency is equal to count, add to array list
for(int i=0; i<mCount.size(); i++){
if(mCount.get(i) == requiredCount){
result.add(originalStringArray[i]);
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,我在某处读到了Collections库非常慢并且拖动,并且似乎可以使用HashSets和表来减少此方法.不幸的是,我对如何做到这一点感到很茫然.有一个更好的方法吗?
我有一个基于从第三方 API 获取的非常复杂的 JSON 定义的 C# 对象。这是其中的一部分:
{"alarmSummary":"NONE"}
Run Code Online (Sandbox Code Playgroud)
C# 中对应的属性是:
public string alarmSummary {get; set;}
Run Code Online (Sandbox Code Playgroud)
我将使用 JSON.NET 中的典型 JSONConvert 进行转换:
var alarms = JSONConvert.DeserializeObject<MyClass>(jsonString);
Run Code Online (Sandbox Code Playgroud)
但是,API 将以这种格式将警报作为数组放置,如果没有任何警报作为字符串,则将其放置为“NONE”:
{"alarmSummary" : ["AHHH Something went wrong!!", "I'm on fire!!"]}
Run Code Online (Sandbox Code Playgroud)
这意味着在 C# 中它需要是:
public string[] alarmSummary {get; set;}
Run Code Online (Sandbox Code Playgroud)
如果可以的话,我会让 JSONConvert 将“NONE”字符串反序列化为只有一个条目的数组。有没有办法为此属性设置条件,或者我必须获取整个复杂的 JSON 字符串并手动转换它?
我使用git在2015年安装了VSTFS。不知何故,我们有两个分支,Development(开发)是我想保持隔离的一个分支,因为那是我们的主人。不知何故,还有一个远程分支开发(小写d)。我想删除它,因为它很混乱,但是如果我们遇到问题,我恐怕要删除它。
我的问题是,我正在运行VS 2017,它不会删除远程分支。我通过右键单击团队资源管理器并单击“删除”来完成此操作。
来自输出窗口的消息显示以下内容:
从远程存储库删除分支时遇到错误:Git进程意外失败。PushCommand.ExecutePushCommand
所以,我打开一个cli,看看那里有什么。这里的命令是做
git branch -d -r origin/<branchname>
Run Code Online (Sandbox Code Playgroud)
但是,我在另一个废弃分支上进行了尝试,但仍然可以在浏览器的TFS列表中看到它。
我的问题是,如何删除小写开发以确保不删除大写开发?
更新:
尽管我是TFS管理员,但似乎我对git实例缺少ForcePush权限。当前正在确定这是否是导致问题的原因。
我一直在使用Google表格API,并遵循Google指南.然而,除了谷歌的第二页之外,没有任何例子可以添加工作表并在.NET中写入新工作表.有很多js,但我不知道如何1)添加一张或2)写入新表.
我怎样才能做到这一点?现在我能像在例如与出任何问题阅读,我只找到一个其他的参考V4 C#.我尝试回到v3,但所有文档强烈建议使用v4.
有没有人能够做到这一点?以下是我迄今为止所做的一切:
// Create Google Sheets API service.
var service = new SheetsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
// Define request parameters.
// Add new Sheet
string sheetName = string.Format("{0} {1}", DateTime.Now.Month, DateTime.Now.Day);
AddSheetRequest addSheetRequest = new AddSheetRequest();
addSheetRequest.Properties.Title = sheetName;
// How do I tell this to update??
Run Code Online (Sandbox Code Playgroud) 我有一个天蓝色的 Redis 缓存。我已经对其进行了设置,以便我可以根据此示例进行 stringGet 键设置。它的效果非常好。
但是,我想知道缓存是否为空,或者是否有任何 (x) 类型的 C# 对象条目。我目前想看看是否可以获得密钥计数。我还没有找到任何解决方案。
我唯一的想法是进行按键扫描,搜索每个按键(获取所有按键),然后进行计数。但这似乎效率很低。有没有更“元”数据风格的解决方案?
谢谢!
我有一个这样的字符串:
对于您的使用量介于 1,000 kWh 和 1,500 kWh 之间的每个计费周期,将应用 80 美元的住宅使用积分。对于您的使用量介于 1,501 kWh 和 2,000 kWh 之间的每个计费周期,将应用 40 美元的住宅使用积分。
你可以看到这两个句子有重复的格式。我使用命名组创建了一个正则表达式,如下所示:
A Residential Usage (?<costType>[\w\s]+) of \p{Sc}*(?<cost>\s?\d+[., ]?\d*) will be applied for each billing cycle in which YOUR USAGE falls between (?<firstUsage>[0-9, ]+) kWh and (?<secondUsage>[0-9, ]+) kWh
Run Code Online (Sandbox Code Playgroud)
我有很多字符串组合可以用命名组进行正则表达式捕获,我使用这个函数来捕获它们:
public static string[] ValidatePattern(string pattern, string input, List<string> groupNames)
{
Regex regex = new Regex(pattern);
var match = regex.Match(input);
List<string> results = new List<string>();
if (match.Success)
{
//results.Add(input);
foreach (var name in groupNames) …Run Code Online (Sandbox Code Playgroud) 我正在使用带有 .NET 实现的 azure redis 缓存。我有一个需要从缓存中获取的密钥列表。现在,这是我的实现:`
List<string> planIds = ...; // already initialized.
List<customObj> plans = new List<customObj>();
foreach (string currentId in planIds)
{
var plan = Database.StringGet(key);
if (plan != null) plans.Add(plan);
}
Run Code Online (Sandbox Code Playgroud)
为了解释我已经对其进行了一些简化,但效果很好。但是,我想知道是否可以通过向批量下载传递我想要检索的密钥列表来对批量下载进行类似的设置。通常有 200 多个 id 左右。这可行吗?