Как оформить заказ файла в TFS в Visual Studio Генератор отдельных файлов?
Я пишу VS Single File Generator для VS 2013. В генераторе я пытаюсь создать / изменить новый файл в родительской папке. Если файл, который я пытаюсь создать, уже существует и доступен только для чтения (с управлением исходным кодом в TFS), то я получаю сообщение об ошибке при попытке что-либо записать в него.
Я думаю, что мне нужно программно проверить файл перед его редактированием. Может ли кто-нибудь предоставить какой-либо указатель на то, как я могу добиться этого?
Я также добавляю этот новый файл в файл проекта, и мне кажется, что мне придется также извлечь файл проекта, прежде чем я смогу добавить его.
1 ответ
Я решил это, проверив, находится ли изменяемый файл в Source Control. Если он находится в Source Control и не извлечен, я извлекаю файл перед тем, как пытаться изменить его. Я создал метод ниже, в котором dte
является EnvDTE.DTE
,
private void CheckoutFileIfRequired(string fileName)
{
if (dte.SourceControl == null
|| !dte.SourceControl.IsItemUnderSCC(fileName)
|| dte.SourceControl.IsItemCheckedOut(fileName))
{
return;
}
Action<string> checkOutAction;
checkOutAction = file => dte.SourceControl.CheckOutItem(file);
// run on worker thread to prevent the tool calling back into VS
checkOutAction.EndInvoke(checkOutAction.BeginInvoke(fileName, null, null));
}