Сборка TFS: как выполнить событие после сборки

У меня есть проект asp.net mvc. Я обновляю некоторые файлы JavaScript в событии после сборки. Он имеет следующий формат - "helperApp /sourceFolder /destinationFolder". Это прекрасно работает. Но когда я пытаюсь собрать его на сервере сборки TFS, я получаю сообщение об ошибке (255 не могу открыть файл). Это произошло из-за того, что папка "C:\Build\.." и файлы внутри доступны только для чтения. Поэтому я не могу обновить свои файлы JavaScript.

У меня была аналогичная проблема при использовании WebDeploy с компьютера разработчика (файлы в destinationFolder были заблокированы), но я исправил это с помощью команды «Извлечь для редактирования» из VS (это делает их доступными для записи).

Мой вопрос: как можно получить доступ helperApp к файлам проекта в событии после сборки во время сборки TFC?


person RredCat    schedule 25.06.2013    source источник


Ответы (1)


Первый вопрос: почему вы редактируете файлы с исходным кодом как часть сборки? Собираетесь ли вы зафиксировать изменения как часть сборки?

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

person Dylan Smith    schedule 25.06.2013
comment
Связано с первым вопросом. Я реализовал многоязычную поддержку. Я добавил файлы ресурсов (например: .en.resx, *.fr.resx) в проект asp.net mvc. Я хотел использовать значения из этих ресурсов в файлах JavaScript. Итак, я создал ресурсы js (например, Resources.en.js, Resources.fr.js), добавив некоторый код C#, который управляет тем, какой файл Resource..js необходимо использовать. Следующая моя проблема заключается в том, что мне приходится обновлять файлы Resource.*.js каждый раз, когда я меняю свои файлы *.resx. - person RredCat; 26.06.2013
comment
Это было реализовано в событии после сборки. Я вызываю свое вспомогательное приложение, которое из каталога sourceFolderберет файлы .resx и создает файлы Resource.*.js в destinationFolder. Мое приложение использует resources values from destinationFolder`. Поэтому мне нужна возможность редактировать Resource.*.js после сборки. - person RredCat; 26.06.2013
comment
Я добавил проверку атрибута только для чтения и просто удалил его, если он есть в файле. - person RredCat; 01.07.2013