MsBuild 패키지 + deploy 명령을 두 개의 별도 명령으로 분리하는 데 몇 가지 문제가 있습니다. (MsDeploy에 추가 매개 변수를 전달하려면이 작업을 수행해야합니다.) 이처럼 좋은 모습을 작동MsBuild 패키지 속보 및 별도의 MsBuild 및 MsDeploy 명령으로 배포
명령은 :
msbuild "src\Solution.sln"
/P:Configuration=Deploy-Staging
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=https://192.168.0.1:8172/MsDeploy.axd
/P:DeployIISAppPath=staging.website.com
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WmSvc
/P:CreatePackageOnPublish=True
/P:UserName=staging-deploy
/P:Password=xyz
분리 포장 명령은 다음과 같습니다 잘 작동
msbuild "src\Solution.sln"
/P:Configuration=Deploy-Staging
/P:DeployOnBuild=True
/P:DeployTarget=Package
/P:_PackageTempDir=C:\temp\web
합니다. 그러나 다음 MsDeploy 부분 :
msdeploy
-verb:sync
-allowUntrusted
-usechecksum
-source:manifest=
'src\WebProject\obj\Deploy-Staging\Package\WebProject.SourceManifest.xml'
-dest:auto,ComputerName=
'https://192.168.0.1:8172/MsDeploy.axd?site=staging.website.com',
username='staging-deploy',password='xyz',authType='basic',includeAcls='false'
-enableRule:DoNotDeleteRule
는
가wmsvc.exe Error: 0 : Attempted to perform an unauthorized operation.
setAcl/C:\temp\web (Read)
ProcessId=15784
ThreadId=31
DateTime=2011-03-30T14:57:02.4867689Z
Timestamp=3802908721815
wmsvc.exe Error: 0 : Not authorized.
Details: No rule was found that could authorize user 'staging-deploy',
provider 'setAcl', operation 'Read', path 'C:\temp\web'.
(그리고 몇 가지 더 읽기/쓰기 작업)
가 뭔가 분명히 잘못된 것입니다 WmSvc.log에서 다음과 같은 오류와 함께 실패 그것은 (그것은 다른 방법으로 잘 작동합니다) 액세스하려고하는 경로 - iisApp 타겟팅을 올바르게 사용하려고하는지 모르겠지만, 현재 올바른 web.config 중 하나가 배포 될 것이라고 생각하지 않습니다.
James는 myproj.deploy.cmd에 의해 생성 된 msdeploy 명령입니다. 파일이나 손으로 만들어진거야? 감사합니다. Vishal R. Joshi | http://vishalrjoshi.com | http://twitter.com/vishalrjoshi –
안녕하세요, Vishal은 아닙니다. deploy.cmd 명령의 문제점은 다음과 같습니다. 기본 인증을 설정해야하며 사이트에 stage.webserver를 매개 변수로 추가해야했습니다. 사용자가 모든 IIS에 액세스 할 수있는 권한이 없으므로 대상 컴퓨터 이름, 즉 지금이 작업을 수행 할 수있었습니다. 소스를 사용해야했음을 알았습니다. 출처 : 패키지보다는 매니페스트 (나는 생각합니다. 로컬 서버가 아닌 대상 서버의 매니페스트 정의를 사용하여 패키지를 만들 수 있습니다. 이는 패키지 자체가 어떻게 작동하는지 오해 한 것입니다. –