2
현재 MVC 및 webApi 프로젝트를 프로덕션 환경에 배포하는 자동 방법을 조사하고 구현하는 중입니다.원격 IIS 서버에 웹 배포 자동화
지금까지 Visual Studio 2012에 내장 된 게시 도구를 사용하여 효과를 나타 냈습니다. 이 IDE를 실행하여 프로덕션 서버에서 올바른 파일과 IIS 구성을 실행하고 실행할 수 있습니다. 그러나 나는 명령 줄이나 powershell을 통해 스크립트를 실행할 수 있으며 자동으로 2 개의 웹 사이트를 배포합니다.
나는 같은 명령 줄 스크립트를 실행하여이 작업을 수행하는 것을 시도했다 :
msbuild MyProject.csproj /p:DeployOnBuild=true;PublishProfile=MyProfile
이 프로젝트를 빌드하고 프로젝트의 OBJ 폴더에 패키지를 만듭니다. 올바른 방법인가요? 그렇다면 어떻게이 패키지를 원격 서버에 자동으로 배포 할 수 있습니까? 전체 소스 코드 샘플은 그것에 대해 작업하는
function MSBuild-Publish-Web-Service
{
param (
[parameter(Mandatory = $true)][string] $WebProjectFile,
[parameter(Mandatory = $true)][string] $DestinationDir
)
Write-Host "`t`t$($MyInvocation.InvocationName): Publishing web service from $SourceDir"
try
{
$Error.Clear()
$MsBuildPath = "$env:Windir\Microsoft.NET\Framework\v3.5\MSBuild.exe"
if (!(Test-Path $MsBuildPath))
{ throw "Could not find $MsBuildPath" }
$res = [string](. $MsBuildPath "$WebProjectFile" /verbosity:minimal "/t:ResolveReferences;_CopyWebApplication;publish" /p:Configuration=Debug /p:OutDir="$DestinationDir\bin\" /p:WebProjectOutputDir="$DestinationDir")
if ($res.Contains("error"))
{ throw $res }
}
catch
{
Write-Error "`t`t$($MyInvocation.InvocationName): $_"
}
Write-Host "`t`t$($MyInvocation.InvocationName): Web service published"
}
어떤 최종 솔루션 : 여기 – Kiquenet