При редактировании файла Resources.resx Resources.Designer.cs не обновляется, поскольку TFS не проверяет его

Я использую контроль источника TFS.

Когда я добавляю новый ключ ресурса в свой файл ресурсов - Resources.resx - и удаляю save, TFS проверяет Resource.resx, но не проверяет Resources.Designer.cs. Это приводит к сбою обновления Resource.Designer.cs с ошибкой:

Команда, которую вы пытаетесь выполнить, не может быть завершена, потому что файл "Resources.Designer.cs", который необходимо изменить, не может быть изменен. Если файл находится под контролем источника, вы можете проверить его; если файл доступен только для чтения на диске, вы можете изменить его атрибуты.

enter image description here

Ошибка верна в том, что файл доступен только для чтения, а файл НЕ проверен. Я не хочу, чтобы вручную проверять конструктор каждый раз, когда я добавляю/редактирую ключ ресурса. Кто-нибудь знает о решении или работает над этой проблемой?

Обратите внимание, что у меня есть TFS, настроенная на "check out on save", а не "check on on edit". Это преднамеренно уменьшает количество неотредактированных выписок.

РЕДАКТИРОВАТЬ:

Это происходит и в других типах файлов. Например, я использую RazorGenerator для создания скомпилированных MVC-представлений. Такая же проблема возникает, если я пытаюсь редактировать.cshtml, не проверяя сначала.generated.cs.

ОБНОВИТЬ:

Эта проблема возникает во всех (насколько я видел) файлах с автогенерированным кодом:.resx,.edmx,.aspx,.cshtml (при использовании RazorGenerator для скомпилированных представлений) и т.д. Я решил, что это не стоит боль только за то, что "на редактировании: ничего не делай". Я решил сбросить его на "on edit: checkout автоматически". Спасибо всем за ваш вклад. Нет, благодаря команде TFS для этого FAIL.

Ответ 1

Ну, я не думал, что это считается ответом, поэтому я написал его в комментарии. Проверка при сохранении запускается только при сохранении файла, это не срабатывает, когда файл автогенерируется (автогенерация не является триггером для сохранения, который выполняет проверку, так как этот файл редактируется настраиваемым инструментом, назначенным для resx).

Боюсь, что вы не получите правильного ответа (тот, который решит вашу проблему), кроме того, что он по дизайну, но, возможно, стоит открыть дело о подключении и попросить изменить это поведение.

Ответ 2

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

TFS (особенно когда сервер медленный, и у вас есть обычные сетевые проблемы) для меня как разработчика. VS ищет модификацию только над файлами в решении, и, как вы можете видеть, не все из них. Когда вы используете сторонние инструменты (пригодность для интеграционных тестов или пользовательских шагов сборки), которым требуется модифицировать файлы вне VS, вы, вероятно, получите ту же ошибку, что и вы.

Но мы нашли решение. На моей машине я использую git. Мы установили git-tfs. И все, что вам нужно запомнить, это три волшебные команды

  • git tfs fetch
  • git merge remotes/tfs/default
  • git tfs ct

Это. Вы никогда не нарушаете правила компании. И в то же время вы будете свободны от таких странных проблем. Мы забыли про этот кошмар.

EDIT: локальные рабочие области на предстоящей TFS 2012 будут решать несколько проблем, а TFS 2012 станет ближе к SVN, но это не будет DVCS. MS инвестирует в интеграцию с внешними DVCS - пожалуйста, добро пожаловать - Git-TF.

Ответ 3

Я думаю, что это проблема

Обратите внимание, что у меня есть TFS, настроенная на "check out on save", а не "check on on edit". Это преднамеренно уменьшает количество неотредактированных выписок.

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

tfpt uu /noget

Обновление: при изменении выше установки проблема больше не возникает. Подробнее см. Ниже в комментариях.

Ответ 4

Почему вы хотите уменьшить количество неотредактированных выписок? Если файл отмечен без изменений, уведомление TFS и оно не будет отображаться в истории проверки файла.

Вы можете проверить это самостоятельно, проверив один файл и немедленно проверив. TFS сообщит вам там, где никаких изменений и проверка не отменена.

enter image description here

Так что, может быть, подумайте о том, чтобы вернуть его на проверку при редактировании? Как уже упоминалось в другом ответе, это решит ваши проблемы...