Как оформить заказ файла в 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));
    }
Другие вопросы по тегам