2012-02-26 21 views
7

Biz sözde konuşlanmış bir klasöre almak için çalışıyoruz bir Asp.Net web uygulaması var ve Microsoft deli düşünmeye başladım - neden bu kadar zor "WAP a yapmak elde etmektir Yerel FileSystem "MSBuild'in bir parçası olarak dağıtılıyor?web paketi geçici klasöre msdeploy olmaz mı?

Ben bununla inşa edebilirsiniz: Ben çözümü, iki proje var ... Ancak

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

Ve ben bir web sitesine dağıtabilir güzel package.zip olsun ki ben klasörü-paket sende sonra onları gemi, bu yüzden bir klasöre iki paketi dağıtmak istediğiniz önce birleştirmek gerekir ve.

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

hatayı olsun Çünkü:

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

kimse ben web ikisini dağıtmak nasıl bir öneri var mı TechNet'teki to the contrary üzerine documentation rağmen, bunu yapmak mümkün görünmemektedir dosyaları bir "PackageTmp" klasöründen el ile kopyalamadan birbirinin içinde siteler? Ben sadece skip zipping the package and manually copy the files out bunu yapmak olabilir farkında değilim, ama özel bir hedef oluşturmak zorunda mutlu değilim ve sadece inşa edilmelidir bir şey yapmak olduğunu bulmak için başka bir yolu yoktur ki.

, sen _WPPCopyWebApplication ayarlı hedef ile msbuild çağırabilir
+1

Nitekim bir cevap burada (öyle "Bu mümkün değil" bile) çok iyi olurdu. –

cevap

1

sonunda bunu nasıl anlamaya, ama (başka yerde benzeri belirtildiği gibi), Temelde

;-) hakkında gerçekten mutlu değilim. Bunu yaparken WebProjectOutputDir özelliğini de belirtebilir/geçersiz kılabilirsiniz. ($ {Name} Kullandığımız değişkenler) Böyle bir şey

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" 

Sonra ayrı bir adımda bütün "AppRoot" yukarı paketleyebilirsiniz.