2012-03-01 10 views
34

znalazłem następujące informacje o studiu „ekstra” plików Microsoft Visual:Wyłączenie * .vshost.exe i różnych plików z tworzonego na budowie

What is the purpose of the vshost.exe file?

Moje pytanie brzmi, czy istnieje sposób NIE MOŻEMY tworzyć plików .pdb, .manifest i vshost.exe? Czy są absolutnie niezbędne?

Zauważyłem, że po debugowaniu, to nadal pojawia się jako działający proces w moim komputerze, który niepokoi mnie odkąd już go zamknąłem.

+1

Wydaje mi się, że tak naprawdę nie rozumiesz, co mówi w swoim poście. .vshost jest potrzebny, aby szybko rozpocząć sesję debugowania. Nie ma się o co martwić. – Steve

+0

, ale znalazłem również plik vshost.exe działający pod podwójnym numerem – gumuruh

Odpowiedz

59

Przejdź do konfiguracji Release. Następnie kliknij Project + Properties, Debug, odznacz opcję "Włącz proces hostingu Visual Studio". Build + Clean, możesz usunąć wszystko, co zostało i nie wróci. To, że ta opcja jest domyślnie włączona dla wersji Release, jest prawdopodobnie pewną wadą, ale możliwą do obrony.

Proces hostowania to niestandardowa wersja CLR hostowana. Dokładnie to, co robi, nie jest dobrze udokumentowane, ale wiąże się z konfiguracją ustawień bezpieczeństwa podstawowego AppDomain. Nigdy nie słyszałem, żeby ktoś narzekał na walkę z CAS bez tego problemu, ale wtedy nietypowe jest wyłączanie go, a twoja aplikacja prawie zawsze działa z pełnym zaufaniem podczas debugowania z IDE. Byłoby ważne, jeśli zbudujesz udział sieciowy we wczesnych wersjach .NET. Jedyne, co jest oczywiste po wyłączeniu tego, to że wszystko, co napiszesz w Console.Write w aplikacji w stylu GUI, nie będzie już wyświetlane w oknie Output. Nie ma to nic wspólnego z szybkością, o której mówi się w bardzo przeczącej odpowiedzi w odnośniku, podstawowe biblioteki DLL są już rezydentne w pamięci RAM, ponieważ używa ich VS i MSBuild.

Najlepszą rzeczą do zrobienia jest po prostu nie martwić się o to zbyt wiele. Projekt instalacji i wdrażania zignoruje go.

+1

Byłoby miło wyłączyć to z kompilacji dla "projektów tylko treściowych". –

+0

Dziękuję. Miałem projekt zaktualizowany z VS2008 -> VS2013, który odmówił odczytu pliku app.config.Potem dowiedziałem się, że szukałem pliku XXX.vshost.exe.config, który nie był generowany przez AppDomain.CurrentDomain.SetupInformation.ConfigurationFile. Więc wyłączyłem to jak wyżej. Następnie musiałem zmienić nazwę pliku app.config na {projectName} .config, umieścić go w folderze bin i nareszcie działał. – drzounds

+0

Wygląda na to, że opcja "Włącz proces hostingu Visual Studio" nie jest już dostępna w VS2017 i wygląda na to, że projekt działa jako zdefiniowany plik exe, a nie vshost.exe. Być może vshost należy do przeszłości, podobnie jak VS2017? – HotN

1

chodzi vshost plików, przynajmniej w VS2010:

  • nie są one wytwarzane na budowie, ale na wybór konfiguracji kompilacji (będzie generowany w wydaniu kiedy wybrać zwolnienie po raz pierwszy) i na ustawienie "Włącz proces hostingu Visual Studio" na true. (Ponieważ debugowanie konfiguracji i ta opcja ustawiona na wartość true są wartościami domyślnymi, program vshost.exe zostanie utworzony w bin/debug przy domyślnym otwarciu VS z projektem docelowym).
  • Nie są czyszczone podczas odbudowywania lub czyszczenia projektu, ale tylko ręcznie gdy "Włącz proces hostingu Visual Studio" ma wartość false, jeśli VS z tym projektem jest otwarty. (I nie będzie już generowany podczas otwierania tego projektu.)

Jeśli ta opcja flagi ma wartość true, a VS z projektem docelowym jest otwarty, tego pliku nie można usunąć jako używanego. Raz, gdy nie jest zaznaczone, vshost.exe można natychmiast usunąć.

Podsumowanie: Generowanie i usuwanie tych plików nie jest związane z procesem kompilacji.

Ponadto, mogę dodać, że opcja "Włącz proces hostingu Visual Studio" w projektach referencyjnych, które są bibliotekami klas, nie jest brana pod uwagę. Ta opcja jest uwzględniana tylko w projekcie docelowym, który generuje plik wykonywalny.

Powiązane problemy