Mam projekt aplikacji sieci Web w VS 2012 i kiedy korzystam z narzędzia do publikowania w sieci, buduje się ono pomyślnie, ale nie kopiuje żadnych plików do miejsca docelowego publikacji (w tym przypadku system plików).
Jeśli spojrzę na dane wyjściowe kompilacji, widzę, że wszystko jest kopiowane poprawnie do obj \ Release \ Package \ PackageTmp \ poprawnie, ale wtedy widzę tylko:
4> Zakończono budowę projektu „{Project} .csproj”.
4> Usuwanie istniejących plików ...
4> Folder publikacji / ...
4> ========== Kompilacja: 3 powiodło się, 0 nie powiodło się, 1 aktualne, 0 pominięto ===== =====
========== Publikuj: 1 powiodło się, 0 nie powiodło się, 0 pominięto ==========
Mimo że napisano, że publikacja się powiodła, w katalogu docelowym nie ma plików do publikacji.
Widziałem to w wielu projektach i czasami wydaje się, że konfiguracja Rozwiązanie / Platforma powoduje ten problem, ale nie byłem w stanie wskazać dokładnej przyczyny tego problemu.
Czy ktoś jeszcze widział, jak to się dzieje, lub ma pomysł, jak to zrobić poprawnie?
AKTUALIZACJA:
Mogłem znaleźć rozwiązanie tego problemu. Właśnie to się powtórzyło i miałem problemy z ustawieniami publikowania. Gdy zmieniłem wybraną konfigurację na karcie Ustawienia na inną konfigurację, a następnie z powrotem na tę, z której chciałem korzystać, wszystkie moje pliki zaczęły ponownie publikować. Mam nadzieję, że zadziała to w innych projektach w przyszłości.
AKTUALIZACJA 2:
Zamieściłem błąd w Microsoft Connect i usłyszałem odpowiedź od programisty z zespołu VS Web Developer. Powiedział, że naprawili ten problem w swoich wewnętrznych kompilacjach i wkrótce opublikuje aktualizację narzędzia do publikowania, która naprawi ten problem.
AKTUALIZACJA 3:
Zostało to ostatnio naprawione w Visual Studio 2012 Update 2
Odpowiedzi:
Może to być spowodowane rozwiązaniami / projektami, które zostały utworzone przy użyciu RC z wersji vs2012. Zdarzyło mi się to kilka miesięcy temu i rozwiązało problem, upewniając się, że konfiguracje kompilacji rozwiązania pasują do konfiguracji projektu ...
Niedawno miałem ten sam problem podczas otwierania tego samego rozwiązania pierwotnie utworzonego w vs2012RC w VS2012 Express dla sieci. Zrobiłem dokładnie to, co sugerował oryginalny plakat i naprawiłem mój problem.
Oto wątek, który doprowadził mnie do odpowiedzi:
connect.microsoft.com/VisualStudio/feedback/details/746321/publish-web-application-fails
Odpowiednia odpowiedź z powyższej rozmowy, która pomogła mi, to:
źródło
Taki sam problem. Obejściem tego problemu była zmiana ustawień publikowania z wersji na debugowanie. Ponownie opublikuj, a następnie wróć do wersji ...
źródło
Aby pójść o krok dalej. Masz dwa pliki, które są tworzone podczas tworzenia profilu publikowania.
NewProfile.pubxml
NewProfile.pubxml.user
Po otwarciu projektu, który ma te pliki w folderze PublishProfile, z kontrolki źródłowej, ma on tylko
.pubxml
plik, a nie.publxml.user
plik, więc tworzy.publxml.user
plik w locie podczas otwierania projektu. Kiedy tworzy nowy.publxml.user
w locie, xml wygląda następująco:Kiedy tworzysz nowy profil, tworzy xml, który wygląda następująco:
Jeśli weźmiesz
<PropertyGroup>
węzeł i umieścisz go w.pubxml.user
pliku, Twoje PublishProfiles zaczną ponownie działać.źródło
Łatwym rozwiązaniem jest usunięcie profilu publikowania i utworzenie nowego.
po kliknięciu rozwiązania prawym przyciskiem myszy i wybraniu opcji publikuj masz ustawiony profil. usuń to i utwórz nowe.
to naprawi to.
Miałem ten problem z przejścia z 2010 na 2012
źródło
Miałem ten sam błąd i zmieniłem ustawienie z wydania na debugowanie, a problem został rozwiązany.
źródło
Miałem ten sam problem, jednak żadna z odpowiedzi w tym wątku nie działała dla mnie. Mój problem polegał na tym, że istnieje katalog zawierający dynamicznie generowane (przez moją aplikację) statyczne pliki HTML. Cały katalog nie został opublikowany.
Rozwiązanie, które działało dla mnie zostało znalezione tutaj :
źródło
Wynika to z faktu, że plik .pubxml.user zawiera wymagane informacje do opublikowania, a plik ten nie jest (i nie powinien) być objęty kontrolą źródła. Aby naprawić ten błąd VS, skopiuj informacje z pliku .pubxml.user do pliku .pubxml. Odpowiednie właściwości to:
Umieść je w pliku .pubxml i powinieneś być gotowy.
źródło
Próbowałem wszystkich tych rozwiązań, ale to działa za każdym razem.
Po prostu zmieniamy „metodę publikowania:” z „systemu plików” na na przykład „Web Deploy” i natychmiast zmieniamy z powrotem na „system plików”.
źródło
Mam (miałem) ten sam problem z kilkoma projektami. Jedynymi hitami wydają się być projekty internetowe. Usunięcie i ponowne utworzenie profilu rozwiązuje problem tylko raz. Dodatkowo porównanie wygenerowanego pliku XML opublikowanego nie powoduje żadnych różnic, więc nie wydaje się, aby był on w ogóle związany z profilem.
Obejście wspomniane przez OP w celu zmiany problemów z kompilacją tam iz powrotem wydaje się obecnie jedynym niezawodnym rozwiązaniem.
źródło
Ten sam problem napotkałem na VS 2010, po sprawdzeniu wyników publikowania, dzienników zdarzeń, włączeniu i sprawdzeniu dzienników wizualnego studia itp. Następnie zdecydowałem się usunąć publikację internetową (przez dodanie / usunięcie), która, jak sądzę, została niedawno zaktualizowana do wersji 1. 0,30810,0. To rozwiązało problem.
źródło
Tutaj mieliśmy ten sam problem.
Po prostu zmieniamy „metodę publikowania:” z „systemu plików” na na przykład „Web Deploy” i natychmiast zmieniamy z powrotem na „system plików”.
źródło
Dla mnie działało:
Po prostu zmień z Release> Debuguj> Release (lub odwrotnie), a następnie opublikuj.
Nie musisz usuwać, edytować ani publikować niczego, czego nie potrzebujesz.
źródło
Mój problem polegał na niewłaściwej konfiguracji pliku myproject.csproj. Plik „_address-step1-przechowywane.cshtml” nie został skopiowany podczas publikacji. „Brak” zmieniono na „Treść”, teraz jest w porządku.
źródło
None
w pliku .csproj lub całkowicie zniknęły z projektu (tam, ale nie „użyto”)! To w pełni wyjaśnia, dlaczego uruchamianie lokalne zawsze działało, ale publikowanie nigdy nie działało. : DTen sam problem z VS 2012 Pro z miejscem docelowym publikowania dysku. Projekt był używany do prawidłowej publikacji, ale zaczął robić ten problem, gdy nie udało się skopiować plików do folderu docelowego.
Rozwiązaniem była edycja profilu publikowania, zmiana trybu z Release (Any CPU) na debugowanie, a następnie powrót do Release (Any CPU). Spowoduje to, że plik PublishProfiles \ projname.pubxml.user zostanie przepisany (jak opisano powyżej). Wygląda na to, że dodał elementy LastUsedBuild, LastUsedPlatform i TimeStampOfAssociatedLegacyPublishXmlFile w węźle groupgroup. Po zakończeniu publikowania dodaje kolejną grupę przedmiotów z pojedynczymi plikami i czasami publikacji.
źródło
Ta akcja była dla mnie udana:
Zabij Opublikuj profile w „Właściwości> Opublikuj profile> xxxx.pubxml” i ponownie ustaw ponownie.
źródło
Za to, co jest warte, ostatecznie zrezygnowałem z walki z Web Deploy, aby zrobić to, co chciałem (skopiować pliki do wdrożenia i nic więcej), więc napisałem skrypt w PowerShell i jestem bardzo zadowolony z wyniku. Jest o wiele szybszy niż cokolwiek, co wypróbowałem za pomocą MSBuild / Web Publish, prawdopodobnie dlatego, że te metody wciąż działały tak, jak ja nie potrzebowałem.
Oto sedno ( dosłownie ):
W moim przypadku nazywam to w środowisku CI (TeamCity), ale może być łatwo dołączone do zdarzenia po kompilacji.
źródło
Znalazłem, że mogłem obejść ten problem, zmieniając docelową lokalizację z obj / [release | stage | ..] na nową ścieżkę poza folderami rozwiązania, np. C: \ obrazu stanowiska. Wygląda na to, że VS 2012 był zdezorientowany i być może poddał się gdzieś podczas procesu publikowania.
Matt
źródło
Miałem ten sam problem ostatnio w VS 2013 dla projektu MVC, w którym zaimportowałem Umbraco CMS. Nie mogłem opublikować. Powyższa odpowiedź pomogła, choć potrzebowałem trochę czasu, aby dowiedzieć się, co właściwie powinienem zrobić w VS. Aby to sprawdzić, potrzebne były badania np. Na blogach MS. Staram się to powiedzieć prosto:
źródło
Mam aplikację sieci Web z kilkoma innymi projektami wymienionymi w rozwiązaniu. W przeszłości z powodzeniem wdrażałem jedną konfigurację publikowania. Zmieniłem konfigurację projektu z debugowania na wydanie dla projektu, który został pominięty w przeszłości. Następnym razem, gdy próbowałem wdrożyć, dostałem te objawy, w których publikowanie po prostu cicho kończy się niepowodzeniem - nic nie robi i mówi, że się udało:
Jedynym sposobem na jego odzyskanie było wymazanie profilu Publikuj, zamknięcie programu Visual Studio w celu wymuszenia zapisania usunięcia, ponownego otwarcia go i odtworzenia profilu Publikuj od zera. Gdy to zrobię, będę mógł ponownie opublikować grzywnę.
Win8 VS2012, gówniany laptop.
źródło
W Visual Studio 2012 przełączanie między wydaniami wciąż powoduje problemy.
Dodaliśmy zdarzenie przed kompilacją, aby usunąć
obj
folder:del /s /f /q $(ProjectDir)\obj
i naprawiono problem z publikowaniem. Czyszczenie czasami działa, ale nie zawsze.źródło
W końcu sam znalazłem odpowiedź. Wszystkie powyższe rozwiązania nie działają dla mnie.
To, co zrobiłem, to przeniesienie projektu na dysk c. Zmień folder projektu na coś krótszego i opublikuj go.
powodem, dla którego zawiodłem po mojej stronie, jest to, że mam bardzo długą nazwę projektu / dziedziczenie.
C: \ Users \ user \ Desktop \ Compliance Management System \ ComplianceIssueManagementSystem \ ComplianceIssueManagementSystem
Pomyślałem o tym, ponieważ czasami, gdy rozpakowałem plik rar, napisano, że nazwa / ścieżka jest za długa. Myślałem, że będzie tak samo, jak w przypadku wydawnictwa visual studio 2012. i to robi!
mam nadzieję, że to wam pomoże.
źródło
Sprawdź, czy w bieżącym projekcie jest to, czy wykonałeś kopię z tą samą nazwą klasy i inną nazwą strony (nazwa klasy odziedziczy skopiowany plik). Ostatecznie to pomyli kompilator !!!
CodeFile = "Consolidated.aspx.vb" Inherits = "Consolidated
źródło
Żadne z powyższych rozwiązań nie działało dla mnie.
Ale zauważyłem, że z naszych pięciu projektów ASP.NET MVC w naszym głównym rozwiązaniu cztery z nich umieściły pakiet wdrożeniowy we właściwym miejscu, a jeden pozostawił go pod obj \ Debug.
Porównałem projekty i znalazłem rozbieżność. Rozwiązaniem była zmiana tego :
do tego :
Po wprowadzeniu tej zmiany wszystkie pięć projektów umieściło swoje pakiety wdrożeniowe we właściwym miejscu.
(Przepraszam za długie kolejki, ale nie mogłem znaleźć lepszego sposobu na ich zagęszczenie).
źródło
Zetknąłem się z tym, że pliki referencyjne usług generowane przez Visual Studio stały się zbyt długie pod względem ogólnej długości ścieżki.
Skrócono je, ponownie generując odwołanie do usługi za pomocą svcutil.exe, usuwając wszystkie oryginalne pliki odniesienia do usługi.
svcutil można nazwać tak:
My.Namespace należy zastąpić istniejącą przestrzenią nazw w wygenerowanym serwerze proxy usługi (zwykle znajduje się w pliku Reference.cs), aby uniknąć błędów kompilacji.
http://myservice
należy zastąpić adresem URL punktu końcowego usługi.źródło
Mam ten sam problem. Żadne z powyższych rozwiązań nie działało dla mnie.
źródło
Witrynę opublikowałem kilka razy. Ale pewnego dnia, gdy zmodyfikowałem jakiś plik aspx, a następnie próbowałem opublikować stronę internetową, spowodowało to, że opublikowałem pusty folder.
W ramach mojego obejścia znalazłem rozwiązanie.
Kreator publikowania będzie odzwierciedlał każdy błąd podczas publikowania, ale nie skopiuje żadnego pliku do folderu docelowego.
Aby znaleźć plik, który generuje błąd, po prostu skopiuj zawartość folderu witryny do nowego folderu i uruchom studio graficzne z tą witryną.
Teraz, gdy spróbujesz opublikować, poda ci nazwę pliku, która zawiera błędy.
Po prostu napraw błąd w oryginalnym folderze strony i spróbuj opublikować, będzie działać tak, jak wcześniej.
źródło
Wykonaj następujące kroki, aby rozwiązać:
Utwórz nowy profil i skonfiguruj go z tymi samymi ustawieniami, co istniejący profil.
Projekt będzie teraz poprawnie publikowany. Często dzieje się tak w wyniku kontrolowanego przez źródło profilu publikowania z innego komputera, który został utworzony w nowszej wersji programu Visual Studio.
źródło
NAPRAWIONO - różne oferowane rozwiązania nie działały dla mnie. W przypadku VS Community 2017 w systemie Windows Server 2012 R2 działała dla mnie zmiana zmiennych środowiskowych TEMP i TMP dla użytkownika, a następnie ponowne uruchomienie systemu i wdrożenie ponownie (ponowne uruchomienie VS nie wystarczyło). Te zmienne temp są tam, gdzie VS publikuje temp.
Ponowne uruchomienie studia wizualnego po zmianie zmiennych temp nie załatwiło sprawy, musiał zrestartować system.
źródło
Pierwszy:
Podczas publikowania sprawdź ponownie, co wybrałeś.
to powinno to zrobić. Zrobiło to dla mnie! :)
źródło
Najłatwiej jest
źródło