2014-05-08 23 views
2

我使用msdeploy將項目發佈到IIS。它部署在項目的現有版本上。在Web應用程序中,我有一個虛擬目錄,但每次部署項目時,虛擬目錄都會消失。在msdeploy上刪除了嵌套的虛擬目錄

我打電話MSDepoly以下方式:

-source:package='d:\[...]\9.1.0.67\application\AppName.zip' -dest:auto,computerName="hostSite.com",userName="AutoInstall",password="****",authtype="NTLM",includeAcls="False" -verb:sync -enableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"d:\...\9.1.0.67\application\AppName.SetParameters.xml" -skip:objectName=binding -skip:absolutePath="info$" -skip:objectName=dirPath,absolutePath="help$",skipAction=Delete 

,你可以看到底,我有以下跳過規則:

-skip:objectName=binding -skip:absolutePath="info$" -skip:objectName=dirPath,absolutePath="help$",skipAction=Delete 

的結合的跳越規則的工作,但虛擬目錄info仍然從Web應用程序中刪除。虛擬目錄嵌套在幫助目錄中,所以我添加了跳過操作以跳過刪除該文件夾。

我基於以下所有信息blog article,但我的虛擬目錄info仍在部署時被刪除。

請幫忙!

+0

我終於放棄了試圖讓安裝忽略現有的虛擬目錄,並增加了一個蝙蝠腳本,將重新創建虛擬目錄。我會列出這個答案。 –

回答

0

我放棄了讓msdeploy玩好。我只寫了一個bat腳本,在msdeploy完成後執行:

mkdir C:\inetpub\application_wwwroot\VirtualDirectoryPhysicalDir 
ECHO adding read permissions to the app pool 
cacls C:\inetpub\application_wwwroot\VirtualDirectoryPhysicalDir/t /e /g "IIS APPPOOL\MyAppPool":r 
ECHO creating "info" virtual directory 
C:\Windows\System32\inetsrv\appcmd add vdir /app.name:"WebApplication/AppVirtualDirectory"//path:"/help/info" /physicalPath:"C:\inetpub\application_wwwroot\VirtualDirectoryPhysicalDir" 
C:\Windows\System32\inetsrv\appcmd set vdir /vdir.name:"Medrio/MedrioWeb/help/info" /physicalPath:"C:\inetpub\application_wwwroot\VirtualDirectoryPhysicalDir" 
1

我遇到了同樣的問題。在開發中,似乎下面的跳過規則阻止了虛擬目錄被MSDeploy刪除。

-skip:對象名= virtualDirectory,absolutePath = * NameOfVirtualDirectory