Chcę móc automatycznie publikować w folderze lokalnym za każdym razem, gdy budowany jest projekt web asp.net mvc 2.Jak automatycznie opublikować witrynę internetową w programie Visual Studio 2008?
Używam Visual Studio 2008.
Chcę móc automatycznie publikować w folderze lokalnym za każdym razem, gdy budowany jest projekt web asp.net mvc 2.Jak automatycznie opublikować witrynę internetową w programie Visual Studio 2008?
Używam Visual Studio 2008.
Najprostszym sposobem zautomatyzowania funkcjonalności zawartej w akcji "publikowania" programu Visual Studio dostępnej z menu Build jest użycie web deployment project. Jest też jeden dla VS2005. Zasadniczo jest to dodatkowy projekt, który dodajesz do rozwiązania, które będzie kierować twój projekt internetowy, a gdy zostanie zbudowany, opublikuje twój projekt internetowy w ramach procesu budowania. Ułatwia to automatyczne budowanie strony w ramach budowy bez muckingu przy pomocy MSBuild (choć MSBuild nie jest tak trudny).
Chociaż było to całkowicie poprawne po napisaniu, projekty Web Deployment nie są już dostępne dla Visual Studio 2012 i po –
Cóż można zrobić to with MSBuild w przypadku post-build.
Ale czy na pewno chcesz to zrobić? Spowoduje to spowolnienie i prawdopodobnie nie musisz publikować dla każdej kompilacji? Dlaczego nie po prostu uruchomić witrynę w IIS zamiast Cassini.
Opcja 1: Przejście z tempomatu do JetBrains TeamCity (nie pożałujesz!). W TeamCity dostępna jest opcja Artefakty, która ...
"Artefakty to pliki tworzone przez kompilację." Po zakończeniu kompilacji TeamCity wyszukuje artefakty w katalogu kasowym kompilacji zgodnie z określonymi wzorami artefaktów. serwer, skąd będą dostępne do pobrania. "
Opcja 2: Utwórz zadanie w tempomatie, aby wykonać XCOPY po zakończeniu kompilacji.
<tasks>
<msbuild>
... here's your main build ...
</msbuild>
<exec>
... define your XCOPY or other executable task here ...
<buildTimeoutSeconds>900</buildTimeoutSeconds>
</exec>
Wariant 3: Tworzenie projektu po kompilacji w rozwiązania i mają zadanie to, aby skopiować pliki na, dodać warunek na to zadanie, które tylko spust, gdy działa na cruise control (różne zmienne środowiskowe włącz to).
Oto jak to zrobić w moim projekcie strony internetowej. Zauważ, że spowoduje to skopiowanie do folderu; jeśli chcesz publikować za pośrednictwem FTB, WebDav lub SSH, musisz użyć zadania Exec
zamiast zadania Copy
i określić narzędzie wiersza polecenia, które może wdrożyć pliki w pożądanym protokole.
Nie można również edytować zadania AfterBuild
w ustawieniach projektu w IDS VS. Musisz otworzyć go w Notatniku lub ulubionym edytorze tekstu/XML. (Możesz nawet użyć VS, jeśli zamkniesz rozwiązanie i wymusisz je, aby otworzyć plik za pomocą edytora XML :-))
Istnieje również cel kompilacji, który wywołuje AspNetCompiler
, który mam obecnie wyłączony, ale ty można łatwo włączyć za pomocą wartości właściwości MvcBuildViews
.
<PropertyGroup>
<MvcBuildViews>false</MvcBuildViews>
<DropPath>..\..\drop\</DropPath>
</PropertyGroup>
<Target Name="AfterBuildCompiler" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)" />
</Target>
<Target Name="AfterBuild" DependsOnTargets="AfterBuildCompiler">
<ConvertToAbsolutePath Paths="$(DropPath)">
<Output TaskParameter="AbsolutePaths" ItemName="FullDropPath" />
</ConvertToAbsolutePath>
<Message Importance="High" Text="Binplacing -> @(FullDropPath)" />
<ItemGroup>
<Binaries Include="$(OutputPath)**\*.*" />
</ItemGroup>
<Copy SkipUnchangedFiles="True" SourceFiles="@(Compile)" DestinationFiles="@(Compile->'$(DropPath)%(Identity)')" />
<Copy SkipUnchangedFiles="True" SourceFiles="@(Content)" DestinationFiles="@(Content->'$(DropPath)%(Identity)')" />
<Copy SkipUnchangedFiles="True" SourceFiles="@(EntityDeploy)" DestinationFiles="@(EntityDeploy->'$(DropPath)%(Identity)')" />
<Copy SkipUnchangedFiles="True" SourceFiles="@(Binaries)" DestinationFiles="@(Binaries->'$(DropPath)%(Identity)')" />
</Target>
BTW można łatwo edytować projekt XML w Visual Studio, wystarczy kliknąć prawym przyciskiem myszy projekt, usunąć go, a następnie kliknąć prawym przyciskiem myszy Edytuj to. Załaduj ponownie, gdy skończysz. –
Krok 1. Upewnij się, że masz projekt internetowy.
Krok 2. Przejdź do Widok-> Paski narzędzi-> Opublikuj publikację jednym kliknięciem.
Przycisk web przycisku publikowania na pasku narzędzi zrobi to, co chcesz ... zbuduj i opublikuj w jednym kroku.
Doskonale! Od dawna chcę wiedzieć, jak to zrobić! Pozwala to zaoszczędzić około stu kliknięć tygodniowo !! :) –
Zgadzam się z @Luhmann - dlaczego chcesz to zrobić? – PatrickSteele
Zgadzam się również z @Luhmann.:) Nie tylko to, ale prawdopodobnie będziesz publikować w trybie debugowania, który nie byłby dobry do testowania/wydania. –
Może to być na serwerze kompilacji, na którym jest używane narzędzie Visual Studio. Chociaż nie jest idealny, miałoby sens, dopóki ich kompilacja nie zostanie zautomatyzowana. – Jaxidian