2012-02-16 11 views
10

Uwaga: To pytanie jest podobne do How to prevent the copy of XML documentation files in a release mode build?, ale to nie to samo, a odpowiedzi tam nie obowiązują. Czytaj dalej, aby dowiedzieć się, dlaczego. (Proszę zapytać w komentarzach lub na czacie, jeśli się nie zgadzasz, będę zadowolony z opracowania).Jak uniemożliwić Visual Studio "publikowanie" plików dokumentacji XML w projektach internetowych?


Mam projektu biblioteki (MyLibrary) oraz projekt aplikacji sieci Web ASP.NET odsyłania tej biblioteki (oba są w tym samym roztworze). "Generuj plik dokumentacji XML" jest sprawdzany dla projektu biblioteki, ponieważ chcę mieć te ładne funkcje IntelliSense podczas rozwijania.

Gdy I publikuje aplikację internetową (Menu kontekstowe na projekcie/Publikuj ...), kopiuje tylko pliki wymagane do uruchomienia aplikacji (bez kodu źródłowego itp.) Do katalogu publikowania. Dobre. Niestety, kopiuje również plik dokumentacji XML biblioteki. Ponieważ uważam dokumentację naszej biblioteki za tajemnicę handlową, nie chciałbym, aby trafiła ona na serwer klienta. Dlatego musimy pamiętać o ręcznym usunięciu tego pliku z katalogu publikowania przed jego wdrożeniem.

Czy istnieje sposób, aby zapobiecVisual Studio od kopiowania tego pliku podczas publikowania projektu ASP.NET, ale nadal zachowują korzyści z XML dokumentacji IntelliSense przy opracowywaniu?

Odpowiedz

10

Zakładając, że używasz różnych konfiguracji do programowania i wydawania (i cokolwiek innego), odznaczenie "pliku dokumentacji XML"/wyłączenie generowania dla określonej konfiguracji uniemożliwiłoby wdrożenie, gdy nie jest potrzebne. Inną opcją byłoby działanie po instalacji, aby usunąć plik/s.

Pierwszy z tych dwóch wariantów wydaje się bardziej elegancki.

+0

To nie jest idealne, ponieważ (a) musisz ręcznie edytować plik vbproj, aby ustawić tę wartość inaczej dla debugowania/wydania i (b) przegapisz niektóre funkcje Intellisense podczas kodowania podczas ustawiania "Release", ale wydaje się, że najlepsza opcja do tej pory. – Heinzi

+0

@Heinzi Nie jestem przekonany, że nie możesz tego zrobić dla każdej konfiguracji w interfejsie użytkownika, ale mam zamiar zrobić kontrolę stanu psychicznego. ... Sprawdzona poprawność: to _ może być określone dla każdej konfiguracji w interfejsie użytkownika. –

+1

Sprawdziłem również: Możesz to zrobić dla projektów C#, ale nie dla projektów VB. W projektach VB ustawienie jest używane dla * wszystkich * konfiguracji (chyba że ręcznie zmienisz to w pliku vbproj - wtedy pole wyboru w interfejsie użytkownika pokazuje "stan nieokreślony"). – Heinzi

4

Czy istnieje sposób, aby zapobiec Visual Studio z skopiowanie tego pliku podczas wydawnictwo projektu ASP.NET,

Włącz XML docs off w trybie Release

ale nadal zachować korzyści z dokumentacji XML podczas tworzenia IntelliSense?

Włącz XML docs na/off w trybie debugowania. Intellisense będzie działał w obu kierunkach.

+0

Nie zgadzam się na ostatnim zdaniu: streszczenia metody * nie * wyświetlane, jeśli dokumentacja XML są wyłączone dla libary (tylko testowałem to: wyłącz, czysty projekt, pisania kodu). – Heinzi

1

Robię to w Express ale to wydawało się działać dla mnie ...

  1. Poszedłem Properties (dla Projektu)
  2. Kliknięte Publish Tab
  3. Kliknij przycisk Aplikacja Pliki
  4. sprawdzone Pokaż wszystkie pliki
  5. zestaw xml plików do wykluczenia

Jak już powiedziałem, używając Express 2010, ale to zadziałało (nie skopiowało pliku do lokalizacji publikowania).

+0

Dzięki, ale działa to tylko w przypadku projektów aplikacji Windows, a nie aplikacji internetowych. Mają inny proces publikowania i, o ile widzę, nie można tam skonfigurować pojedynczych plików. – Heinzi

+1

Ah, tęskniłem za tą częścią. Przepraszam. – APrough

2

Nie ma innego rozwiązania. Wystarczy umieścić w pliku csproj na początku:

<AllowedReferenceRelatedFileExtensions>.pdb</AllowedReferenceRelatedFileExtensions> 

To wszystko. Pliki XML nie będą już publikowane. Oczywiście można to uzależnić od konkretnej konfiguracji.

+0

Uwaga: ta zmiana spowoduje zatrzymanie plików .config z odwołanych złożeń (w tym samym rozwiązaniu). – Lyra