2012-02-26 15 views
7

私たちはAsp.Net Webアプリケーションを持っていて、これをフォルダに擬似的に展開しようとしています。そして、私はMicrosoftが夢中になっていると思っています。なぜWAPに "ローカルFileSystem "はMSBuildの一部として展開しますか?Webパッケージを一時フォルダにmsdeployできませんか?

私はこれをビルドすることができます。これは、私は、しかし、私は私の溶液中で二つのプロジェクトを持っている...

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

そして、私はウェブサイトにデプロイできる素敵なpackage.zipを取得私はそれらを出荷する前に結合する必要があるので、私は両方のパッケージをフォルダに展開し、そのフォルダを再パッケージしたいと思う。 TechNetのto the contrarydocumentationにもかかわらず、それを行うのは可能ではないようです。

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

エラーが出たので:

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

誰もが、私はウェブ2を配備することができる方法の提案を持っています"PackageTmp"フォルダからファイルを手動でコピーすることなく、お互いのサイトを共有できますか?私は、これを行うにはちょうどskip zipping the package and manually copy the files outができることを知っていますが、私はカスタムターゲットを作成しなければならないということに満足していないし、それを見つけ出す方法もありません。

、あなたは_WPPCopyWebApplicationに設定された目標とのMSBuildを呼び出すことができ
+1

確かに、ここでの答えは(「それはできません」でも)素晴らしいでしょう。 –

答えて

1

は、我々は最終的にこれを行う方法を見つけ出すんでしたが、(他の場所ように述べたように)、それは、基本的に

;-)について私は本当に満足していません。また、WebProjectOutputDirプロパティを指定/オーバーライドすることもできます。 ($ {name}が、我々が使用している変数です)このような何か

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" 

私たちは、その後、別のステップで全体の「APPROOT」をパッケージ化することができます。