Как оформить заказ файла в TFS в Visual Studio Генератор отдельных файлов? - PullRequest
0 голосов
/ 09 мая 2018

Я пишу VS Single File Generator для VS 2013. В генераторе я пытаюсь создать / изменить новый файл в родительской папке. Если файл, который я пытаюсь создать, уже существует и доступен только для чтения (с управлением исходным кодом в TFS), то я получаю сообщение об ошибке при попытке что-либо записать в него.

Я думаю, мне нужно программно оформить файл перед его редактированием. Может ли кто-нибудь предоставить какой-либо указатель на то, как мне этого добиться?

Я также добавляю этот новый файл в файл проекта, я думаю, что мне придется также извлечь файл проекта, прежде чем я смогу добавить к нему.

1 Ответ

0 голосов
/ 10 мая 2018

Я решил, проверив, находится ли изменяемый файл в 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));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...