W przeważającej części po prostu bierzesz wszystko, co Visual Studio ustawia dla Ciebie jako domyślne ... Mam na myśli właściwość BuildAction dla każdego pliku wybranego w Eksploratorze rozwiązań. Istnieje wiele opcji i trudno jest ustalić, co zrobi każda z nich.
AdditionalFiles
? Widzę to w VS 2015, ale nie mogłem znaleźć odniesienia do tego.Z dokumentacji:
źródło
Strona - Pobiera określony plik XAML i kompiluje do BAML, i osadza dane wyjściowe w strumieniu zasobów zarządzanych dla twojego zestawu (w szczególności AssemblyName.g.resources). Dodatkowo, jeśli masz odpowiednie atrybuty w głównym elemencie XAML w utworzy plik blah.g.cs, który będzie zawierał częściową klasę „codebehind” dla tej strony; polega to w zasadzie na wywołaniu goopu BAML w celu ponownego uwodnienia pliku do pamięci i ustawienia dowolnych zmiennych składowych klasy na nowo utworzone elementy (np. jeśli umieścisz x: Name = "foo" na elemencie , będziesz mógł to zrobić. foo.Background = fioletowy; lub podobny.
ApplicationDefinition - podobny do Page, z tą różnicą, że idzie on w krok dalej i definiuje punkt wejścia dla aplikacji, który utworzy instancję obiektu aplikacji, wywoła wywołanie na nim, która następnie utworzy instancję typu ustawionego przez właściwość StartupUri i da okno główne .
Ponadto, dla jasności, to pytanie jest nieskończone w zestawie wyników; każdy może zdefiniować dodatkowe BuildActions po prostu budując Zadanie MSBuild. Jeśli zajrzysz do katalogu% systemroot% \ Microsoft.net \ framework \ v {wersja} \ i spojrzysz na plik Microsoft.Common.targets, powinieneś być w stanie odszyfrować znacznie więcej (na przykład w VS Pro i nowszych wersjach, dostępna jest akcja „Shadow”, która pozwala generować prywatne akcesoria, aby pomóc w testowaniu jednostek prywatnych klas.
źródło
VS2010 ma właściwość „Kompiluj akcję”, a także „Kopiuj do katalogu wyjściowego”. Zatem działanie „Brak” będzie nadal kopiowane do katalogu kompilacji, jeśli właściwość kopiowania jest ustawiona na „Kopiuj, jeśli nowsze” lub „Zawsze kopiuj”.
Dlatego należy zarezerwować akcję kompilacji „Treści”, aby wskazać treść, do której będziesz uzyskiwać dostęp za pośrednictwem „Application.GetContentStream”
Użyłem ustawienia „Build Action” „None” i „Copy to Output Direcotry” ustawienia „Copy if Newer” dla niektórych zewnętrznie połączonych plików .config.
SOL.
źródło
W VS2008 najbardziej przydatna jest pozycja doc:
Windows Presentation Foundation Budowanie aplikacji WPF (WPF)
ms-help: //MS.VSCC.v90/MS.MSDNQTR.v90.en/wpf_conceptual/html/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm
ApplicationDefinition Identyfikuje plik znaczników XAML, który zawiera definicję aplikacji (plik znaczników XAML, którego elementem głównym jest Aplikacja). ApplicationDefinition jest obowiązkowa, gdy instalacja jest prawdą, a OutputType to winexe. Aplikacja WPF, a co za tym idzie projekt MSBuild, może mieć tylko jedną definicję aplikacji.
Strona Identyfikuje plik znaczników XAML, którego treść jest konwertowana na format binarny i kompilowana w zestawie. Elementy strony są zwykle implementowane w połączeniu z klasą kodową.
Najczęstsze elementy strony to pliki XAML, których elementami najwyższego poziomu są:
Zasób Identyfikuje plik zasobów, który jest kompilowany w zestawie aplikacji. Jak wspomniano wcześniej, UICulture przetwarza elementy zasobów.
Treść Identyfikuje plik treści dystrybuowany wraz z aplikacją. Metadane opisujące plik zawartości są kompilowane w aplikacji (przy użyciu AssemblyAssociatedContentFileAttribute).
źródło
Co powiesz na tę stronę z Microsoft Connect (wyjaśniającą typy DesignData i DesignDataWithDesignTimeCreatableTypes). Cytowanie:
Poniżej opisano dwa działania kompilacji dla plików przykładowych danych.
Przykładowym plikom .xaml należy przypisać jedną z poniższych akcji kompilacji:
DesignData : Przykładowe typy danych zostaną utworzone jako fałszywe typy. Użyj tej akcji kompilacji, gdy przykładowe typy danych nie są możliwe do utworzenia lub mają właściwości tylko do odczytu, dla których chcesz zdefiniować przykładowe wartości danych.
DesignDataWithDesignTimeCreatableTypes : Przykładowe typy danych zostaną utworzone przy użyciu typów zdefiniowanych w przykładowym pliku danych. Użyj tej akcji kompilacji, gdy przykładowe typy danych można tworzyć przy użyciu ich domyślnego pustego konstruktora.
Nie tak niewiarygodnie wyczerpujący, ale przynajmniej daje wskazówkę. Ten przewodnik MSDN daje także kilka pomysłów. Nie wiem, czy te działania kompilacji mają zastosowanie również do projektów innych niż Silverlight.
źródło
źródło