В рамках автоматической сборки я очищаю каталог и копирую последние версии исходных файлов в этот каталог. Сначала я настраиваю список файлов, которые хочу скопировать:
<CreateItem
Include="\\BuildServer\Build_Temp\SomeRootDirectory\**\*">
<Output
TaskParameter ="Include"
ItemName ="FilesToCopy"/>
</CreateItem>
И пусть моя система узнает, где находится мой QA-сервер:
<CreateProperty
Value="\\QAWebServer\Websites\MySite">
<Output
TaskParameter="Value"
PropertyName ="MyDropLocation"/>
</CreateProperty>
Затем я удаляю и воссоздаю свой каталог на конечном сервере, чтобы уничтожить все файлы (это сборка с выжженной землей, чтобы убедиться, что мы случайно не оставляем файлы, не являющиеся частью системы контроля версий в нашем веб-каталоге).
<RemoveDir Directories="\\QAWebServer\Websites\MySite" />
<MakeDir Directories="\\QAWebServer\Websites\MySite" />
Наконец, я выполняю задачу копирования:
<Copy
SourceFiles="@(FilesToCopy)"
DestinationFiles="@(FilesToCopy->'$(MyDropLocation)\%(RecursiveDir)%(Filename)%(Extension)')"
OverwriteReadOnlyFiles="True"/>
Затем я получаю полученную ошибку при попытке скопировать файлы. Интересно, что некоторые делают это, а некоторые нет (в данном случае это выглядит почти исключительно в корне каталога, который я только что создал выше):
C:\Build_Temp\QABuild\BuildType\TFSBuild.proj(690,3): error MSB3021: Unable to copy file "\\BuildServer\Build_Temp\SomeRootDirectory\Import.swf" to "\\QAWebServer\Websites\MySite\Import.swf". Access to the path '\\QAWebServer\Websites\MySite\Import.swf' is denied.
C:\Build_Temp\QABuild\BuildType\TFSBuild.proj(690,3): error MSB3021: Unable to copy file "\\BuildServer\Build_Temp\SomeRootDirectory\Incomplete.swf" to "\\QAWebServer\Websites\MySite\Incomplete.swf". Access to the path '\\QAWebServer\Websites\MySite\Incomplete.swf' is denied.
C:\Build_Temp\QABuild\BuildType\TFSBuild.proj(690,3): error MSB3021: Unable to copy file "\\BuildServer\Build_Temp\SomeRootDirectory\Index.html" to "\\QAWebServer\Websites\MySite\Index.html". Access to the path '\\QAWebServer\Websites\MySite\Index.html' is denied.
Я проверил права доступа к файловой системе (каждый имеет право создавать / изменять / и т. Д.), И нет никаких проблем при добавлении файлов в структуру подкаталогов на \ QAWebServer \ Websites \ MySite, просто (primarilly) для корень.