TFS / MSBuild ломается на статическом контенте после реализации инкрементных сборок - PullRequest
1 голос
/ 19 декабря 2011

Чтобы ускорить строительство, мы перешли на инкрементные сборки. Как описано в на этой странице MSDN , я добавил следующую информацию в свой проект сборки:

   <PropertyGroup>
      <SkipClean>true</SkipClean>
      <SkipInitializeWorkspace>true</SkipInitializeWorkspace>
      <ForceGet>false</ForceGet>
   </PropertyGroup>

Все работало нормально, и строительство идет ОЧЕНЬ быстрее. В последнее время я получаю такие ошибки, которые нарушают мою сборку:

[Любой процессор / релиз] C: \ Program Файлы \ MSBuild \ Microsoft \ VisualStudio \ v9.0 \ WebApplications \ Microsoft.WebApplication.targets (60,3): ошибка MSB3021: невозможно скопировать файл «ИЗОБРАЖЕНИЯ \ tab \ black.gif» в "D: \ Постройте \ Binaries \ Release_PublishedWebsites \ MyApp \ ИЗОБРАЖЕНИЙ \ вкладка \ black.gif". Доступ к пути 'D: \ Постройте \ Бинарные \ Release_PublishedWebsites \ MyApp \ ИЗОБРАЖЕНИЙ \ вкладка \ black.gif' отказано.

Эта проблема возникает только , иногда . Это никогда не dll (как в случае с другим вопросом о SO), но всегда файл .gif или .css (статический контент) Как это возможно, что эти типы файлов блокируются?

Удаление временного двоичного каталога решает проблему для следующей сборки ... но это не похоже на правильное решение.

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

У меня были те же проблемы с нашими сборками, но мы не выполняем инкрементные сборки.

Обходной путь для решения проблемы, с которой я столкнулся, состоит в том, чтобы отредактировать определение сборки и установить параметр Чистая рабочая область Процесс > 2. Базовый ). на Выходы (от None) это должно предотвратить это и. Это не добавило слишком много накладных расходов к нашим сборкам, но они сделаны на SSD.

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

0 голосов
/ 21 декабря 2011

Похоже, у вас есть несколько проектов веб-сайтов в вашем решении.Каждый веб-сайт публикуется в одну и ту же папку D: \ Build \ Binaries \ Release_PublishedWebsites \ MyApp.Вы используете одни и те же имена изображений на двух или более сайтах в качестве контента.Когда эти проекты веб-сайтов создаются параллельно, веб-сайты иногда создаются одновременно.Один проект веб-сайта пытается скопировать его содержимое в выходную папку, в то время как другой проект веб-сайта уже копирует тот же контент в целевую папку.

...