4

我即將在VS2012中使用Web Deploy實用程序部署MVC4站點。由於我無法直接連接到服務器,因此我正在生成一個'Web Deploy Package'發佈配置文件,我使用IIS> Import package選項上傳和部署該配置文件。將powershell腳本添加到mvc站點的web部署包中

這工作很好,但有一個例外。我需要一個指向服務器中另一個文件夾(其中移動數據被上傳)的站點內的虛擬目錄。我可以毫無問題地創建這個虛擬目錄,但每次我用新版本部署一個包時,虛擬目錄都會被刪除,我必須記得再次創建它。

我想要做的是自動創建此虛擬目錄的過程,但我無法找到如何實現它。我走得更遠的是找到一個PowerShell Cmdlet,它允許我創建一個新的虛擬目錄,New-WebVirtualDirectory

是否可以自定義包創建以在部署之後運行此cmdlet?

回答

2

你想要做的是添加一個新的MSBuild任務AfterTargets ='MSDeployPublish'。

爲了做到這一點,你需要編輯csproj文件並添加一個新的Target與你的PowerShell任務。

它可能是這個樣子:

<Target Name="PostPublishTarget" AfterTargets="MSDeployPublish"> 
    <Exec Command="$PowershellCmdHere"/> 
</Target> 

瞭解更多關於做powershell in MSBuild here