2009-05-22 20 views
11

Chciałbym symulować element menu "Opublikuj ..." z projektu kontekstowego WCF (lub aplikacji sieci Web ASP.NET lub ...) w programie Visual Studio 2008. Nie mam potrzeby publikowania go w działającej instancji IIS, tylko po to, aby umieścić zawartość internetową razem z folderem bin w lokalnym katalogu. Czy istnieje sposób dodania go w zdarzeniach budowania postów lub jako zadanie MSBuild?Publikowanie usługi WCF (lub aplikacji sieci Web ASP.NET) za pomocą wiersza polecenia

Odpowiedz

9

Oto odpowiedź, dzięki tym linkiem: http://codingcockerel.co.uk/2008/05/18/how-to-publish-a-web-site-with-msbuild/ Tak, właśnie zmodyfikowany plik .csproj aplikacji internetowej, i pisał to pod AfterBuild cel (który już tam był):

<Target Name="BeforeBuild"> 
    <Message Text="##############Before build##################" Importance="high"/> 
    <RemoveDir Directories="publish" 
     ContinueOnError="true"/> 
</Target> 
<Target Name="AfterBuild"> 
    <Message Text="##############After build##################$(OutputFolder)" Importance="high"/> 
    <MSBuild Projects="$(ProjectName).csproj" 
      Targets="ResolveReferences;_CopyWebApplication" 
      Properties="WebProjectOutputDir=publish\;OutDir=publish\bin\" /> 
</Target> 
0

Powinieneś być w stanie napisać polecenie xcopy, aby skopiować potrzebne pliki w odpowiednie miejsce. Microsoft ma artykuł o xcopy deployment for asp.net.

Po prawidłowym wprowadzeniu polecenia można umieścić go w działaniach budowania postów, aby automatycznie uruchamiał się po kompilacji.

Zobacz także VS Post Build Event dla przykładów kopiowania tylko danych wyjściowych dll (zwróć uwagę na użycie $ (TargetPath) & $ (TargetDir)).

0

HI, Powinieneś rzucić okiem na Web Deployment Projects. Są to w rzeczywistości pliki MSBuild z obsługą GUI Visual Studio. Wstępnie skompilują Twoją witrynę. Możesz rozszerzyć ich zachowanie, aby skopiować wygenerowane pliki na serwer WWW.

Sayed Ibrahim Hashimi

My Book: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

mam problemy z projektami internetowych, ponieważ wdrożyć plik .csproj, obj folder i wszystkie inne niepotrzebne rzeczy. Chciałbym tylko odtworzyć polecenie "Publikuj ..." z menu kontekstowego projektu WWW (nie witryny). Czy jest jakiś prostszy sposób, lub muszę wykluczyć je ręcznie, tak jak w przypadku xcopy? –

Powiązane problemy