2009-10-02 19 views
2

我試圖通過在清單文件中使用runCommand提供程序,通過msdeploy作爲部署過程的一部分來運行批處理腳本(更多,前提是我可以弄清楚這一點)。msdeploy的Manifest.xml文件中的runCommand提供程序

這是我的清單文件看起來像清單文件

<MSDeploy.iisApp> 
    <iisapp path="Default Web Site/SiteName" /> 

    <dbfullSql path="msdeploy.config" transacted="false" /> 
    ...(more calls to providers) 

    <runCommand path="(call to batch script here)" /> 
</MSDeploy.iisApp> 

一切都正常運行,但它並不像我的命令實際運行。輸出的日誌給了我這個在我的命令應該被調用的末尾。

Info: Adding child runcommand (MSDeploy.iisApp/runCommand). 
Verbose: The synchronization completed in 1 pass(es). 
Total changes: 85 (82 added, 3 deleted, 0 updated, 0 parameters changed, 0 bytes copied) 

我用下面的命令來運行msdeploy:

"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:package="package" -dest:iisApp="Default Web Site/SiteName" -setParam:name=bunch of parameters... -debug -verbose > MsDeployOutput.txt 

我給清單文件中的命令(這也是我的源碼包)是公認的(以任何方式而定)但從未執行。關於原因和解決方案的任何想法?

回答

3

MsDeploy還有一個自動提供程序,用於部署程序包的內容。所以你將不得不將你的命令改爲

「C:\ Program Files \ IIS \ Microsoft Web Deploy \ msdeploy.exe」-verb:sync -source:package =「package」-dest:auto -setParam:名稱=一堆參數... -debug -verbose> MsDeployOutput.txt

另外,如果你希望你的清單踢,你需要修改你的命令行作爲

「C:\ Program Files文件\ IIS \ Microsoft Web Deploy \ msdeploy.exe「-verb:sync -source:package =」package「-dest:manifest =」manifestLocation「-setParam:name =一堆參數... -debug -verbose> MsDeployOutput.txt

和MsDeploy將會發揮它的魔力。

謝謝,

1

runCommand提供程序中存在一個錯誤。要解決它,使用這個屬性 MSDeploy.MSDeployKeyAttributeName =「路徑」

像這樣:<runCommand path="(call to batch script here)" MSDeploy.MSDeployKeyAttributeName="path" />

+0

至於我可以告訴大家,如果這個bug存在,所以在這一點上解決了(使用2.1,它在IIS站點上看起來像「2.0」)。 – 2011-10-05 20:25:23

+0

這讓我的''工作時,它沒有以前,我使用WebPI 3.0和IISExpress 7.5。 – 2012-05-26 18:56:34

+0

WebPI和IISExpress 8.0對我來說仍然是需要的 – 2012-09-29 17:22:03

相關問題