Кажется, что когда TFS выполняет сборку, когда он создает каталог сборки и извлекает файлы из исходного кода, он помечает все исходные файлы как доступные только для чтения. Это вызывает проблему с решением BizTalk, которое у нас есть, похоже, что во время сборки biztalk генерирует/редактирует класс cs для сопоставления файлов, и это тот же тип файла, который получает исключение несанкционированного доступа во время сборки, если он отмечен как только для чтения. Но убей меня, и я не могу понять, как изменить это поведение TFS. Есть идеи?
Файлы, помеченные как доступные только для чтения во время сборки
Ответы (4)
Файлы помечены как доступные только для чтения, поскольку выполняется получение последней версии из TFS. Если BizTalk создает файл во время компиляции, вы можете либо не включать этот файл в систему управления версиями, либо удалить флаг «только для чтения» для этого файла.
Вы можете удалить флаг в TFS 2010, отредактировав шаблон процесса сборки и добавив действие InvokeProcess для выполнения команды attrib -r.
Для получения дополнительной информации о том, как добавить InvokeProcess в шаблон процесса сборки, см. http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2.-Add-arguments-and-variables.aspx
Это нормальное поведение. Но если у вас есть некоторые автоматически сгенерированные (т. е. minification/grunt...) процессы, для которых требуются файлы с возможностью записи, обновите файл проекта и сделайте каждый файл доступным для записи в процессе предварительной сборки.
<Target Name="BeforeBuild">
<Exec Command=“attrib -R $(SolutionRoot)\myFile.ext“ />
</Target>
Я знаю, что уже поздно, но надеюсь, что это поможет кому-то прийти сюда.
Ссылка с: https://benoit808.wordpress.com/2007/10/30/change-a-files-attribute-from-a-msbuild-script/
НЕ регистрируйте файлы .cs в системе управления версиями для проекта biztalk. Перейдите к этим файлам в системе управления версиями и удалите их.
В моем случае я проверил свои локальные файлы, и они были с атрибутом ТОЛЬКО ДЛЯ ЧТЕНИЯ, поэтому я удалил атрибут локально, снова зарегистрировал файлы, и все это работает: