Файлы, помеченные как доступные только для чтения во время сборки

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


person aceinthehole    schedule 09.09.2010    source источник


Ответы (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

person Ewald Hofman    schedule 10.09.2010
comment
Я использую обновление 4 TFS2013 и обновление 4 VS2013. Я использую неизмененный шаблон сборки DefaultTemplate.xaml. У меня нет зарегистрированных файлов .xsd.cs. По моему опыту, агент сборки TFS помечает папку как доступную только для чтения, что предотвращает создание xsd.cs как части сборки, что приводит к сбою сборки. Если я удалю из папки флаг только для чтения, я смогу вручную запустить успешную сборку на сервере сборки, но этот флаг будет добавлен обратно во время следующей автоматической сборки. - person Rob Bowman; 03.03.2015

Это нормальное поведение. Но если у вас есть некоторые автоматически сгенерированные (т. е. 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/

person Dilaksha A    schedule 18.05.2017

НЕ регистрируйте файлы .cs в системе управления версиями для проекта biztalk. Перейдите к этим файлам в системе управления версиями и удалите их.

person Randy    schedule 27.03.2012

В моем случае я проверил свои локальные файлы, и они были с атрибутом ТОЛЬКО ДЛЯ ЧТЕНИЯ, поэтому я удалил атрибут локально, снова зарегистрировал файлы, и все это работает:

person Rahim    schedule 22.10.2014