Jak mogę scalić i używać Web.debug.config
wbudowanego debugera programu Visual Studio 2010?
visual-studio-2010
web-config
sztaplarka
źródło
źródło
Jest to całkiem proste i wierz lub nie, wydaje się, że właśnie w ten sposób ma działać VS.
Dodaj następujące wiersze dosłownie bezpośrednio przed zamykającym tagiem „Project” pliku .csproj projektu zawierającego web.config.
Umieść następujące wiersze dosłownie w zdarzeniu po kompilacji we właściwościach projektu, który zawiera plik web.config. Zrób to dla każdej konfiguracji kompilacji, dla której chcesz przeprowadzić transformacje.
źródło
Web.config
, więc wszystkie twoje transformacje muszą być „idempotentne” (można je ponownie zastosować na wynikach innych transformacji). Uniemożliwi to również zachowanie rozsądku, jeśli umieścisz plik w kontroli źródła (tak jak prawdopodobnie powinieneś). Ogólnie rzecz biorąc, „prosty” hack, który przenosi złożoność / ból na kolejny zestaw problemów. Dobrze, jeśli możesz sobie z tym poradzić „lepiej” tam, źle, jeśli nie. Również rozważyć użycie $ (VisualStudioVersion) zamiast twarde kodowania wersji VS (trzeba będzie zapomnieć, aby go zmienić).Rozwiązałem to w prostszy sposób, dodając to na końcu pliku .csproj, tuż przed tagiem. Jest to podobne do odpowiedzi Keitn, z tą różnicą, że nie używa zdarzenia po kompilacji.
źródło
Nie chciałem aktualizować pliku web.config w moim projekcie tylko ten, który trafia do folderu bin, więc oto jak to zrobiłem.
Dodaj następujący kod na końcu .csproj (tuż przed ostatnim znacznikiem zamykającym projektu)
Następnie dodaj następujący krok po kompilacji
Oznacza to, że podczas budowania transformacja odbywa się z pliku debug / release config do pliku WebsiteName.Config w wyjściowym katalogu bin, a zatem nie koliduje z głównym web.config w projekcie.
źródło
Po przeczytaniu wielu podobnych postów i problemach z plikami, których nie można nadpisać lub nie można uzyskać dostępu do pliku web.config, ponieważ jest on tylko do odczytu, oto co pracowało dla mnie:
Uwagi:
Działa jako cel BeforeBuild.
Chcę, aby działał tylko w określonej konfiguracji (alternatywnym środowisku debugowania) i dlatego mam parametr Condition. Podczas wdrażania za pośrednictwem sieci Web cel publikacji włącza się i nie potrzebuję tego celu do działania.
Nie chcę pamiętać o sprawdzeniu pliku web.config (tylko po to, aby go cofnąć, gdy skończę), więc sprawdzam web.config przed rozpoczęciem transformacji. Jeśli nie używasz TFS, możesz usunąć ten wiersz.
Ponieważ VS (2010) \ msbuild nie chce puścić źródła web.config, używam pliku tymczasowego (dzięki temu artykułowi za informacje: http://www.diaryofaninja.com/blog/2011/09/ 14 / using-custom-webconfig-transformations-in-msbuild )
Próbowałem dodać polecenie usunięcia TempWeb.config, ale VS \ msbuild nie chce go puścić. Mogę z tym żyć, ponieważ nie jest dodawany do TFS.
źródło
The command ""C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\tf.exe" checkout "C:\_Code\RTS\SCTimeSheet\Web.config"" exited with code 9009
. Jakieś pomysły?Wiem, że to jest stare, ale mam ten sam problem. Mamy konfiguracje Test, Staging, Live, które zastępują punkty końcowe, parametry połączenia itp. Z domyślnego pliku Web.config
Jednak zrobiłbym następujące rzeczy:
To nie jest tak wiele kroków i jest to zrobione dość szybko, gdy już to zrozumiesz. Mam nadzieję że to pomoże. :)
źródło
@ologesa: Twoje rozwiązanie wymaga dostępu do zapisu w oryginalnym pliku Web.config (musisz wyewidencjonować w programie TFS). Lepszym rozwiązaniem jest bezpośrednie wygenerowanie pliku Web.config w folderze bin, tak jak robi to keitn. Kiedy połączymy Keitn i Twoje rozwiązanie, otrzymamy to:
źródło