11

Kiedy używam Build-> Publish Web Site w Visual Studio 2008, większość czasu kompiluje witrynę, a następnie po prostu pyta mnie "Wszystkie pliki w folderze docelowym zostaną usunięte. Kontynuować?" (lub coś w tym rodzaju). Czasami jednak, publikując projekt w Visual Studio, otrzymałem okno dialogowe, które dałoby mi wybór całkowitego zastąpienia zawartości folderu lub po prostu zastąpienie zmienionych plików nowszą wersją.Jak mogę użyć funkcji "Publikuj" w Visual Studio 2008 bez kasowania zawartości folderu docelowego?

Zdecydowanie wolę publikować bez całkowitego wymazywania folderu, ponieważ wdrożona aplikacja tworzy pliki użytkownika i pliki pamięci podręcznej, ponieważ nie jest konieczne podejmowanie dodatkowych kroków w celu ich zachowania. Jednak nie jestem pewien, dlaczego Visual Studio nie zawsze daje mi tę opcję. Czy to miejsce gdzieś mogę zmienić? Czy jest związany z wersją .NET, której używam?

Dowolny wgląd jest mile widziany!

Edycja - Kontynuacja na 2009-01-20

Wciąż nie zorientowaliśmy się, ale tutaj jest trochę więcej informacji.

Oto co funkcja publikowania wygląda dla jednego projektu ASP.NET na moim pulpicie Win XP:

A oto jak to wygląda dla innego projektu na moim Vista laptop:

Zwróć uwagę na przyciski opcji na drugim zrzucie ekranu, które pozwalają mi usunąć zawartość folderu przed opublikowaniem lub tylko zastąpić dopasowanie ing plików. Chciałbym mieć te opcje dla każdego projektu.

Na obu komputerach działa program Visual Studio 2008 Professional (wersja 9.0.30729.1 SP, zgodnie z Pomoc-> Informacje). Dokładnie ta sama wersja. I wątpię, aby różnica w OS spowodowała zmianę tej funkcji. To musi być gdzieś miejsce, prawda? Czy ktoś wie?

Odpowiedz

12

John ma rację, jedyną różnicą jest to jeden z twoich projektów jest Web Site Project a drugi jest Web Application project. Nie zobaczysz opcji "" przekonwertować na aplikację internetową ", chyba że jesteś w projekcie aplikacji internetowej . Wiem ... to bardzo mylące. Przyczyna tego pochodzi od sposobu, w jaki jesteś convert to a web application project.Jeśli planujesz go przekonwertować (co może być prawdziwym bólem w dupie, w zależności od konfiguracji), musisz pamiętać o kilku różnicach:

W projekcie aplikacji internetowej wszystko jest wstępnie skompilowane wszystkie strony kodu będą kompilowane do pliku .dll ---- W projekcie WWW nic w projekcie nie jest wstępnie skompilowane, kompilator skompiluje wszystko, aby upewnić się, że jest poprawne, ale żadna z skompilowanych stron nie jest przesłana . Kiedy użytkownik najpierw próbuje uzyskać dostęp do strony, każda strona jest kompilowana do własnej biblioteki dll. Oznacza to, że w projekcie strony internetowej można przesłać pojedynczy plik codebehind.

Przestrzenie nazw - W projekcie Web Application nazw są tworzone domyślnie w lokacji Project Web nie są. Być może będziesz musiał poświęcić trochę czasu na ich dodanie, jeśli planujesz ich konwersję.

pliki Project - można zauważyć, że internetowej projektu nie mają „cproj” złożyć projekt aplikacji Web robi.

Przekonwertowałem kilka z tych projektów. Uważam, że są one dość gładkie, o ile w folderze "app_code" nie ma zbyt wiele kodu. Możesz spróbować i przekonać się, jak łatwo jest, jeśli wygląda na to, że będzie to bolało, proponuję, aby to było tylko FileZilla i zaoszczędzić sobie trochę bólu głowy.

Powodzenia

0

Myślę, że prawdziwą odpowiedzią na twoje pytanie jest to, że powinieneś umieścić swoje pliki użytkownika i pliki cache w innym miejscu.

Podczas publikowania strony internetowej Program Visual Studio został zaprojektowany w celu zapewnienia, że ​​folder docelowy zawiera pliki witryny sieci Web i absolutnie nic więcej.

+0

Idealnie, tak. Ale nie jestem jedynym programistą w mojej organizacji i niektóre rzeczy są poza moją kontrolą. –

0

Widocznie ta funkcja jest przyjście w VS2010 - to Vishal Joshi ogłoszone na TechEd EMEA w sesji "PDC307: Microsoft Visual Studio 10: Web Futures Rozwoju"

+0

Ale już mam to w VS2008! Po prostu nie mogę zrozumieć, dlaczego wydaje się działać w przypadku niektórych projektów, a nie innych. –

+1

Wygląda na to, że są to różne typy projektów - jeden to strona internetowa lub projekt aplikacji, a jeden ma projekt Web Deployment. Chodzi o to, że wdrożenie witryny przy użyciu którejkolwiek z nich spowoduje usunięcie wszystkich plików, które nie są częścią projektu - Vista nie będzie przesyłać plików, które się nie zmieniły. –

3

To okno dialogowe jest różna dla projektów witryn internetowych i projektów aplikacji internetowych . W moich projektach MVC (projekty aplikacji internetowych) widzę dodatkowe opcje. W moich regularnych projektach internetowych widzę pierwsze okno dialogowe.

+0

Hmm ... to przydatna obserwacja. Ale czy jesteś pewien, że to jedyna różnica? Jestem pewien, że oba projekty, o których wspomniałem powyżej, to regularne projekty stron internetowych. Ta, która ma opcję "Nie nadpisuj" ma "przekonwertować do aplikacji internetowej" jako opcję, gdy kliknę prawym przyciskiem myszy rozwiązanie. –

+0

Na mojej maszynie, to różnica. Czy korzystasz z Web Deployment Projects lub czy jest on zainstalowany? –

+0

Nie jestem pewien, dlaczego został odrzucony. To nie byłem ja. –

-2

Strona została zaktualizowana od miejsca, w zaktualizowanej warstwy.

+1

Uhhh ... co? Nie rozumiem. –

1

Nie jestem pewien, czy ta opcja będzie dla Ciebie odpowiednia, ale możesz użyć funkcji kopiowania strony z eksploratora rozwiązań. Kliknij ikonę "Kopiuj witrynę" u góry eksploratora rozwiązań.

Powiązane problemy