我有幾個問題將一個MsBuild包+部署命令分解爲兩個單獨的命令。 (我需要這樣做來將其他參數傳遞給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.log以下錯誤
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'.
(和幾個讀/寫操作)
東西顯然與腳麻它嘗試訪問的路徑(因爲它可以很好地與其他方法一起使用) - 我不確定它甚至試圖正確使用iisApp定位,而此刻我不認爲正確的web.config會被部署。
James,這是由myproj.deploy.cmd生成的這個msdeploy命令文件還是手工製作? 謝謝 Vishal R. Joshi | http://vishalrjoshi.com | http://twitter.com/vishalrjoshi – 2011-03-31 07:19:20
嗨維薩爾,不完全 - 與deploy.cmd命令的問題是:我需要設置基本的身份驗證,我必須添加?site = staging.webserver作爲參數上的目標計算機名稱,因爲用戶沒有權限訪問所有的IIS這就是說,我已經設法讓這個工作現在 - 事實證明我應該一直在使用source:package而不是source:manifest(我認爲它正在嘗試使用目標服務器上的清單定義而不是本地創建一個包 - 我自己對它將如何工作的誤解)。 – 2011-03-31 08:57:17