2012-02-26 13 views
7

Abbiamo un'applicazione web Asp.Net che stiamo cercando di ottenere pseudo-distribuito in una cartella, e sto iniziando a pensare che Microsoft sia pazza - perché è così difficile ottenere un WAP per fare un " Local FileSystem "distribuire come parte di MSBuild?Impossibile msdeploy web pacchetto nella cartella temporanea?

posso costruire con questo:

msbuild .\SubSite.csproj "/p:Platform=AnyCPU;Configuration=Release" /t:Package 

E ottenere un bel package.zip cui posso distribuire a un sito web ...

Tuttavia, ho due progetti nella mia soluzione, che ho è necessario combinare prima di spedirli, quindi voglio distribuire entrambi i pacchetti in una cartella, quindi ricomprare la cartella. Nonostante il documentation su TechNet to the contrary, non sembra essere possibile fare:

msdeploy -verb:sync -source:package=.\SubSite.zip -dest:contentPath=.\Www\SubSite 

Perché si ottiene l'errore:

Source (sitemanifest) and destination (contentPath) are not compatible for the given operation.

Qualcuno ha un suggerimento di come potrei web schierare due siti l'uno dentro l'altro senza copiare manualmente i file da una cartella "PackageTmp"? Voglio dire, sono consapevole che potrei fare solo questo skip zipping the package and manually copy the files out, ma non sono contento di dover creare un target personalizzato, e non c'è altro modo per trovarlo solo per fare qualcosa che dovrebbe essere integrato.

+1

In effetti, una risposta qui (anche se è "Non è possibile") sarebbe ottima. –

risposta

1

abbiamo finalmente capire come fare questo, ma io non sono davvero felice di questo ;-)

in sostanza, (come detto altrove su così), è possibile chiamare msbuild con l'obiettivo fissato per _WPPCopyWebApplication. Puoi anche specificare/sovrascrivere la proprietà WebProjectOutputDir quando lo fai. Qualcosa di simile a questo (dove $ {nome} sono le variabili che stiamo usando)

msbuild ${SourcePath}\Www\UI\UI.csproj "/p:Platform=AnyCPU;Configuration=Release;WebProjectOutputDir=${OutputPath}\AppRoot" "/t:_WPPCopyWebApplication" 
msbuild ${SourcePath}\Www\Mobile\Mobile.csproj "/p:Platform=AnyCPU;Configuration=Release;WebProjectOutputDir=${OutputPath}\AppRoot\Mobile" "/t:_WPPCopyWebApplication" 
msbuild ${SourcePath}\Www\Service\WebService.csproj "/p:Platform=AnyCPU;Configuration=Release;WebProjectOutputDir=${OutputPath}\AppRoot\WebServices" "/t:_WPPCopyWebApplication" 

Possiamo quindi confezionare l'intero "AppRoot" in una fase separata.

Problemi correlati