Этот вопрос был задан некоторое время назад, но он относится к той же проблеме, что и я.
Проблема:
- Мы хотим проверить наш код.
- Затем мы хотим построить наш проект.
- Во время нашей сборки мы зависим от Build Events для перемещения файлов, чтобы у нас были необходимые файлы для завершения процесса сборки.
- Когда наше событие сборки пытается скопировать файлы, мы получаем ошибку «Доступ запрещен».
Причина:
- Подключаемый модуль Team Foundation Server Visual Studio изменяет атрибут «Только чтение» в наших файлах на ТОЛЬКО ДЛЯ ЧТЕНИЯ, когда мы возвращаем наши файлы.
Пример события сборки:
- скопируйте "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
Выше нам просто нужно переместить файл из нашего целевого пути сборки (папки bin \ debug или bin \ release) в нашу папку проекта. В моей ситуации это было сделано для того, чтобы я мог включить файлы, созданные для проекта, в свой установщик. Мой установщик не получал их как часть вывода проекта.
Исправление: (чуть не ударил себя по лицу, когда понял это)
Новое событие сборки:
- attrib -R "$ (ProjectDir) SomeFile.ext"
- скопируйте "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
- attrib + R "$ (ProjectDir) SomeFile.ext"
Мы все развлекаемся с Build Events, верно? Выше я просто делаю 2 вещи, я удаляю атрибут только для чтения, теперь файлы не только для чтения. Скопируйте мой файл, как я изначально хотел. Затем замените атрибут только для чтения (я полагаю, необязательно), чтобы Visual Studio и Team Foundations остались довольны.
И да ... Я все еще бью себя по этому поводу.