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" 
} 
+0

어떤 최종 솔루션 : 여기 – Kiquenet

답변

3

내가 웹 응용 프로그램을 배포 할 때마다 내가 사용하는 기능입니다?