2009-03-31 9 views
10

Dodałem projekt Web Deployment do mojego rozwiązania, aby stworzyć czyste wdrożenie mojej aplikacji internetowej. Działa to zgodnie z oczekiwaniami ... tzn. Buduje źródło &, a następnie kopiuje pliki do rozmieszczenia w folderze/Release (i wyklucza takie elementy, jak pliki źródłowe i moje foldery .svn itp.).Dodawanie do wbudowanego ExcludeFromBuild ItemGroup z projektem Web Deployment

Ale teraz chcę jawnie wykluczyć niektóre inne pliki (dla uproszczenia, powiedzmy tylko jeden plik o nazwie somefile.txt). Więc dodać grupę pozycji do pliku wdproj następująco:

<ItemGroup> 
    <ExcludeFromBuild Include="somefile.txt" /> 
</ItemGroup> 

To rzeczywiście wykluczyć określony plik na wniosek, ale teraz pliki wyłączone domyślnie nie są wykluczone. Konkretnie, teraz wszystkie moje pliki svn znajdują się w folderze Release & jest także folder Source na tym samym poziomie, z wszystkimi źródłami w nim.

W zasadzie wydaje się, że zdefiniowanie grupy elementów ExcludeFromBuild powoduje nadpisanie zestawu wbudowanych wartości domyślnych zamiast dodawania do nich.

Niezupełnie korek, ale nie idealny ... Czy ktoś wie, jak po prostu dodać plik do domyślnej grupy ExcludeFromBuild? Czy jest to przypadek użycia domyślnych Vs. wykluczając wszystko ręcznie Vs. usuwanie plików, które nie występują po domyślnej kompilacji?

Odpowiedz

19

Cóż, dla każdego, kto szuka, myślałem, że powinienem odpowiedzieć na własne pytanie ... Nie znalazłem dokładnie tego rozwiązania, którego szukałem, dlatego właśnie dodałem wszystko, co potrzebne, zostało wykluczone ręcznie do ExcludeFromBuild ItemGroup (do naśladować, co domyślne opcje wydawało się zrobić &, a następnie wykluczyć mój konkretny plik). Moja lista ExcludeFromBuild skończyło się patrząc tak:

<ItemGroup> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\somefile.txt" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\obj\**\*.*" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*.*" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.csproj" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.scc" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.user" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.vspscc" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.log" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.svclog" /> 
</ItemGroup> 

zasadzie wyklucza wszystkie pliki dziennika, pliki użytkownika/projektów, plików SVN bezpiecznych plików źródłowych itp plus niestandardowe pliki chciałem ignorować w pierwszej kolejności.

+0

Dzięki za to! –

+0

ta, miałem właśnie .svn \ ** \ *. * I nie mogłem się domyślić, dlaczego to działało. – Rippo

0

Nie jestem pewien, czy to pomaga, ale polecenie ma właściwość Wyklucz, można zastąpić obiekt docelowy, który kopiuje pliki i użyć, aby uwzględnić/wykluczyć to, czego potrzebujesz.

+0

Dzięki za pomoc, ale skończyłem robiąc to ręcznie za pomocą ExcludeFromBuild ... – Alconja

0

Tak, wiem, że to jest wieczne, ale czy próbowałeś tego?

<ItemGroup> 
    <ExcludeFromBuild Include="somefile.txt;$(ExcludeFromBuild)" /> 
</ItemGroup> 
+0

Tak jak powiedziałeś, było to na zawsze, więc, szczerze mówiąc, nie pamiętam, co jeszcze próbowałem ... Czy próbowałeś tego? Czy to działa? – Alconja

Powiązane problemy