Я создал сценарий PowerShell для копирования файлов в каталог, сценарий, сначала создает папку или инициирует событие новой папки, если оно существует. Затем копирует каталог из другого места. После копирования файлов мне нужно скопировать правильную веб-конфигурацию в зависимости от значения, заданного пользователем, выполняющим сценарий. Проблема, с которой я сталкиваюсь, заключается в том, что я могу копировать файлы, но для всех файлов установлен режим «только для чтения». Это означает, что при попытке скопировать правильный файл web.config сценарий завершается ошибкой, так как доступ запрещен.
Это упрощенная версия скрипта для простоты.
$WebApp_Root = 'C:\Documents and Settings\user\Desktop\Dummy.Website'
$Preview_WebApp_Root = 'c:\applications\Preview\'
$Choice = read-host("enter 'preview' to deploy to preview, enter Dummy to deploy to Dummy, or enter test to deploy to the test environment")
if (($Choice -eq 'Preview') -or ($Choice -eq 'preview'))
{
$Choice = 'Preview'
$Final_WebApp_Root = $Preview_WebApp_Root
}
write-host("Releasing Build to " + $Choice +'...')
write-host("Emptying web folders or creating them if they don't exist... ")
New-Item $Final_WebApp_Root -type directory -force
write-host("Copying Files... ")
Copy-Item $WebApp_Root $Final_WebApp_Root -recurse
write-host("Copy the correct config file over the top of the dev web config...")
Copy-Item $Final_WebApp_Root\Config\$Choice\Web.configX $Final_WebApp_Root\web.config
write-host("Copying correct nhibernate config over")
Copy-Item $Final_WebApp_Root\Config\$Choice\NHibernate.config $Final_WebApp_Root\NHibernate.config
write-host("Deployed full application to environment")