간단한 proof-of-concept 웹 배포 시나리오를 만들려고합니다.웹 배포 (msdeploy)를 다른 폴더에 배포하는 방법은 무엇입니까?
이- 는 몇 개의 파일과 폴더를 가지고 .zip 파일
- 의 포장을 풀고 다른 폴더
- 실행 압축을 푼에서 .exe로 .zip 파일에 패키지화 : 내 목표는에있다 폴더 (.exe가 압축을 푼 위치를 알려줍니다). 내가 설치된 IIS없이 가상 머신에이 일을 해요
, 그렇지 않으면 그것은 그것으로 아무것도 할 필요가없는 경우에도, 어떤 이유로 IIS의 설정을 읽을 싶어 (그리고 관리 부족하기 때문에 실패 진상).
I가 다음 파일을 한 .zip 패키지 매니페스트를 통해 생성C:\Temp\TheFolder\readme.txt
C:\Temp\TheFolder\MagicScript\CSTest.exe
: 들어
msdeploy -verb:sync -source:manifest=manifest.xml -dest:package=ready.zip
: 나는 다음과 같은 명령을 사용하여 포장
<sitemanifest>
<contentPath path="C:\Temp\TheFolder"/>
<runCommand path="C:\Temp\TheFolder\MagicScript\CSTest.exe"/>
</sitemanifest>
unpackaging 다음 명령을 사용합니다 :
msdeploy -verb:sync -source:package=ready.zip -dest:auto -replace:match=TheFolder,replace=OtherFolder
그러나 MSDeploy는 모두 동일한 TheFolder
에있는 모든 항목을 완고하게 풀어 놓습니다. 또한 .exe 파일은 패키지되지 않은 폴더에서 실행되지 않습니다. 오히려 temp 폴더에 복사 된 다음 현재 디렉토리가 배포 스크립트를 실행 한 곳으로 설정된 상태에서 실행됩니다.
replace 대신 매개 변수를 사용해도 시도했지만 여전히 효과가 없습니다.
내가 뭘 잘못하고 있니?
나는'-dest' 매개 변수에 오타가 있다고 생각합니다. 어쨌든, 나는 그것에 대해 생각하지 않았습니다. 그래도 .ZIP과 타겟 매니페스트라는 두 개의 파일을 제공해야한다는 의미입니다. 맞습니까? 또한 대상 매니페스트는 대상 컴퓨터에서 수정해야합니다. –
예, 두 번째 방법을 사용하는 경우 두 개의 파일이 필요합니다. 그것은 당신이 프로젝트를 어떻게 보내고 있는가에 달려 있습니다. 여러 대의 컴퓨터가있는 경우 각각에 고유 한 디렉토리가 필요하지만 문제가 될 수 있습니다. 그러나 각 컴퓨터에 'OtherFolder'가 있으면 'TheFolder'대신 'OtherFolder'에서 패키지를 만드는 것이 더 쉽습니다. 어떤 방법 으로든 웹 배포의 경우 표준 WebDeploy 기능을 사용하는 것이 좋습니다. –
저희 회사는 인트라넷 웹 사이트 (기본적으로 당사의 주력 ERP 응용 프로그램의 웹 프론트 엔드) 인 제품을 만들고 있습니다. 그것을 사용하는 많은 고객이 있습니다. 자동화 된 설치 프로그램을 사용하여 사람이 개입하지 않아도 웹 사이트를 자동으로 설치하고 업그레이드 할 수 있습니다. 따라서 단일 패키지에 대해 많은 매개 변수를 지정해야합니다 (명령 줄 또는 기타 방법을 통해). –