Udostępnij za pośrednictwem


Konfigurowanie projektu dla danych wyjściowych

Każda konfiguracja może obsługiwać zestaw procesów kompilacji, które generują elementy wyjściowe, takie jak pliki wykonywalne lub pliki zasobów. Te elementy wyjściowe są prywatne dla użytkownika i mogą być umieszczane w grupach, które łączą powiązane typy danych wyjściowych, takich jak pliki wykonywalne (.exe, .dll, .lib) i pliki źródłowe (pliki idl, .h).

Elementy wyjściowe mogą być udostępniane za pomocą metod i wyliczane za IVsEnumOutputs pomocą IVsOutput2 metod. Jeśli chcesz zgrupować elementy wyjściowe, projekt powinien również zaimplementować IVsOutputGroup interfejs.

Konstrukcja opracowana przez implementację IVsOutputGroup umożliwia projektom grupowanie danych wyjściowych zgodnie z użyciem. Na przykład biblioteka DLL może być pogrupowana z bazą danych programu (PDB).

Uwaga

Plik PDB zawiera informacje debugowania i jest tworzony po określeniu opcji "Generuj informacje o debugowaniu" podczas kompilowania .dll lub .exe. Plik .pdb jest zwykle generowany dla konfiguracji projektu Debugowanie tylko.

Projekt musi zwrócić taką samą liczbę grup dla każdej obsługiwanej konfiguracji, mimo że liczba danych wyjściowych zawartych w grupie może się różnić w zależności od konfiguracji. Na przykład biblioteka DLL Matta może zawierać mattd.dll i mattd.pdb w konfiguracji debugowania, ale uwzględniać tylko matt.dll w konfiguracji retail.

Grupy mają również te same informacje o identyfikatorze, takie jak nazwa kanoniczna, nazwa wyświetlana i informacje o grupie, od konfiguracji do konfiguracji w projekcie. Ta spójność umożliwia wdrażanie i pakowanie, aby nadal działać, nawet jeśli konfiguracje się zmienią.

Grupy mogą również mieć kluczowe dane wyjściowe, które umożliwiają tworzenie skrótów do tworzenia pakietów w celu wskazywania czegoś znaczącego. Każda grupa może być pusta w danej konfiguracji, więc nie należy zakładać rozmiaru grupy. Rozmiar (liczba danych wyjściowych) każdej grupy w dowolnej konfiguracji może być inny niż rozmiar innej grupy w tej samej konfiguracji. Może również różnić się od rozmiaru tej samej grupy w innej konfiguracji.

Grafika grup wyjściowych

Grupy danych wyjściowych

Podstawowym zastosowaniem interfejsu IVsProjectCfg jest zapewnienie dostępu do kompilowania, wdrażania i debugowania obiektów zarządzania oraz umożliwiania projektom grupowania danych wyjściowych. Aby uzyskać więcej informacji na temat korzystania z tego interfejsu, zobacz Project Configuration Object (Obiekt konfiguracji projektu).

Na poprzednim diagramie kompilacja grupy ma kluczowe dane wyjściowe w konfiguracjach (bD.exe lub b.exe), aby użytkownik mógł utworzyć skrót do skompilowania i wiedzieć, że skrót będzie działać niezależnie od wdrożonej konfiguracji. Źródło grupy nie ma kluczowych danych wyjściowych, więc użytkownik nie może utworzyć skrótu do niego. Jeśli utworzona grupa debugowania ma kluczowe dane wyjściowe, ale utworzona grupa handlu detalicznego nie, będzie to niepoprawna implementacja. Wynika to z tego, że jeśli jakakolwiek konfiguracja ma grupę, która nie zawiera żadnych danych wyjściowych, a w rezultacie nie ma pliku klucza, a następnie inne konfiguracje z tej grupy, które zawierają dane wyjściowe, nie mogą mieć plików kluczy. Edytory instalatora zakładają, że nazwy kanoniczne i nazwy wyświetlane grup oraz istnienie pliku klucza nie zmieniają się w oparciu o konfiguracje.

Należy pamiętać, że jeśli projekt ma element IVsOutputGroup , który nie chce spakować ani wdrożyć, wystarczy, aby nie umieścić tych danych wyjściowych w grupie. Dane wyjściowe można nadal wyliczać normalnie, implementując EnumOutputs metodę zwracającą wszystkie dane wyjściowe konfiguracji niezależnie od grupowania.

Aby uzyskać więcej informacji, zobacz implementację IVsOutputGroup w przykładowym projekcie niestandardowym w witrynie MPF for Projects.

Zobacz też