Udostępnij przez


Typowe elementy projektu MSBuild

W programie MSBuild element jest nazwanym odwołaniem do co najmniej jednego ciągu, takiego jak nazwy plików. Elementy zawierają metadane, takie jak nazwy plików, ścieżki i numery wersji. Wszystkie typy projektów w programie Visual Studio mają kilka wspólnych elementów. Te elementy są zdefiniowane w pliku Microsoft.Build.CommonTypes.xsd.

W tym artykule wymieniono wszystkie typowe elementy projektu zdefiniowane w programie MSBuild. Elementy i właściwości udostępniane przez zestaw .NET SDK są udokumentowane w dokumentacji programu MSBuild dla zestawu Microsoft.Net.Sdk.

Sam program MSBuild nie ustawia żadnej wartości dla opcjonalnych metadanych, a niezastawione metadane są równoważne pustemu ciągowi. W związku z tym wartość domyślna dla opcjonalnych metadanych to pusty ciąg. Jednak wartości metadanych są czasami ustawiane w plikach zestawu SDK, które są niejawnie importowane. Wartości zależą od przywoływanego zestawu SDK.

Reference

Reprezentuje odwołanie do zestawu .NET (zarządzanego) w projekcie.

Nazwa metadanych elementu Description
HintPath Ciąg opcjonalny. Względna lub bezwzględna ścieżka zestawu.
Name Ciąg opcjonalny. Nazwa wyświetlana zestawu, na przykład "System.Windows.Forms".
FusionName Ciąg opcjonalny. Określa prostą lub silną nazwę łączenia elementu.

Gdy ten atrybut jest obecny, może zaoszczędzić czas, ponieważ plik zestawu nie musi być otwarty, aby uzyskać nazwę łączenia.
SpecificVersion Opcjonalna wartość logiczna. Określa, czy należy odwoływać się tylko do wersji w nazwie łączenia.
Aliases Ciąg opcjonalny. Wszystkie aliasy odwołania.
Private Opcjonalna wartość logiczna. Określa, czy odwołanie powinno zostać skopiowane do folderu wyjściowego. Ten atrybut jest zgodny z właściwością Copy Local odwołania w środowisku IDE programu Visual Studio. Wartość domyślna to false.

Note

Typ Reference elementu może również służyć do odwoływanie się do wstępnie wygenerowanych zestawów otoki dla natywnych obiektów COM, na przykład, jeśli użyto tlbimp.exe do wygenerowania pia (podstawowego zestawu międzyoperacyjnego). Ten typ odwołania jest odpowiednim wyborem, gdy chcesz wstępnie wygenerować zestawy otoki COM ze znanymi danymi wejściowymi, zamiast polegać na algorytmie MSBuild do generowania otoek COM w czasie kompilacji, co wprowadza zależność od stanu rejestru systemowego na maszynie kompilacji, na której jest uruchamiana msBuild.

COMReference

Reprezentuje odwołanie do składnika COM (niezarządzanego) w projekcie. Ten element jest używany przez zadanie ResolveComReference, które generuje zestawy otoki lub, jeśli EmbedInteropTypes jest używany, osadza typy międzyoperacyjności w zestawie. Użycie tego typu odwołania wprowadza zależność od rejestru systemowego na maszynie kompilacji, która służy do wyszukiwania przywoływnego obiektu COM. Artefakty COM i wpisy COM w rejestrze mogą ulec zmianie, gdy produkty są instalowane, aktualizowane lub odinstalowywane na maszynie (lub po uruchomieniu tej samej kompilacji na innej maszynie), potencjalnie tworząc inny zestaw otoki, nawet jeśli logika kompilacji nie uległa zmianie.

Ten element nie ma zastosowania do projektów non-.NET.

Nazwa metadanych elementu Description
Name Ciąg opcjonalny. Nazwa wyświetlana składnika.
Guid Wymagany ciąg. Identyfikator GUID składnika w formularzu {12345678-1234-1234-1234-123456781234}.
VersionMajor Wymagany ciąg. Główna część numeru wersji składnika. Na przykład "5", jeśli pełny numer wersji to "5.46".
VersionMinor Wymagany ciąg. Pomocnicza część numeru wersji składnika. Na przykład "46", jeśli pełny numer wersji to "5.46".
EmbedInteropTypes Opcjonalna wartość logiczna. Jeśli wartość true, osadź typy międzyoperacyjności z tego odwołania bezpośrednio do zestawu, a nie generując biblioteki DLL międzyoperacyjności.
Lcid Ciąg opcjonalny. LocaleID składnika.
WrapperTool Ciąg opcjonalny. Nazwa narzędzia otoki używanego w składniku. Wartości to:

1. podstawowy
2. tlbimp
3. primaryortlbimp
4. aximp
izolowana Opcjonalna wartość logiczna. Określa, czy składnik jest składnikiem bez reg. Wartość domyślna to false.

Zobacz Rozwiązywanie problemów z odwołaniami com.

COMFileReference

Reprezentuje listę bibliotek typów, do których można odwoływać się według ścieżki pliku, zamiast używać rejestru systemowego. Ten typ odwołania może być dobrą alternatywą dla modelu COMReference w przypadkach, gdy chcesz uniknąć zależności od rejestru maszyny kompilacji, ponieważ konto, na którym jest uruchamiana kompilacja, nie ma podniesionych uprawnień do edytowania rejestru na serwerze kompilacji lub nie chcesz, aby kompilacja miała zależność od stanu rejestru. Jeśli używasz COMFileReference metody do odwołowania się do artefaktu na ścieżce systemowej, kompilacja ma zależność od stanu systemu. Jeśli artefakt systemowy ulegnie zmianie ze względu na zmianę stanu systemu, na przykład gdy produkty są instalowane, aktualizowane lub odinstalowywane (lub jeśli uruchamiasz tę samą kompilację na innej maszynie), zestaw otoki może ulec zmianie, nawet jeśli logika kompilacji nie uległa zmianie. Aby zapewnić spójny wynik kompilacji, możesz buforować znaną kopię artefaktu COM w miejscu, które kontrolujesz, na przykład w folderze projektu lub rozwiązania, i odwoływać się do tego zamiast artefaktu systemowego.

Ten element nie ma zastosowania do projektów non-.NET.

Nazwa metadanych elementu Description
EmbedInteropTypes Opcjonalna wartość logiczna. Jeśli wartość true, osadź typy międzyoperacyjności z tego odwołania bezpośrednio do zestawu, a nie generując biblioteki DLL międzyoperacyjności. Wartość domyślna to „false”.
WrapperTool Ciąg opcjonalny. Nazwa narzędzia otoki używanego w składniku. Wartości to:

1. podstawowy
2. tlbimp
3. primaryortlbimp
4. aximp

Zobacz Rozwiązywanie problemów z odwołaniami com.

NativeReference

Reprezentuje natywny plik manifestu lub odwołanie do takiego pliku.

Nazwa metadanych elementu Description
Name Wymagany ciąg. Nazwa podstawowa pliku manifestu.
HintPath Wymagany ciąg. Względna ścieżka pliku manifestu.

ProjectReference

Reprezentuje odwołanie do innego projektu. ProjectReference elementy są przekształcane w elementy referencyjne przez ResolveProjectReferences element docelowy, więc wszystkie prawidłowe metadane w odwołaniu mogą być prawidłowe w ProjectReferencedniu , jeśli proces przekształcania go nie zastępuje.

Nazwa metadanych elementu Description
Name Ciąg opcjonalny. Nazwa wyświetlana odwołania.
GlobalPropertiesToRemove Opcjonalne string[]. Nazwy właściwości do usunięcia podczas kompilowania przywoływnego projektu, na przykład RuntimeIdentifier;PackOnBuild. Wartości domyślne są puste.
Project Ciąg opcjonalny. Identyfikator GUID odwołania w formularzu {12345678-1234-1234-1234-123456781234}.
OutputItemType Ciąg opcjonalny. Typ elementu do emitowania docelowych danych wyjściowych. Wartość domyślna jest pusta. Jeśli metadane odwołania są ustawione na wartość "true" (wartość domyślna), docelowe dane wyjściowe staną się odwołaniami do kompilatora.
ReferenceOutputAssembly Opcjonalna wartość logiczna. Jeśli ustawiono wartość false, nie zawiera danych wyjściowych przywołynego projektu jako odwołania do tego projektu, ale nadal zapewnia, że inne kompilacje projektu będą kompilowane przed tym projektem. Wartość domyślna to true.
BuildReference Opcjonalna wartość logiczna. Wartość domyślna to true. Jeśli ustawiono falsewartość , ta funkcja ProjectReference nie zostanie skompilowana przez program MSBuild. Jego domyślne obiekty docelowe (patrz "Cele" poniżej) nie będą w ogóle wywoływane.
Private Opcjonalna wartość logiczna. Określa, czy odwołanie powinno zostać skopiowane do folderu wyjściowego. Ten atrybut jest zgodny z właściwością Copy Local odwołania w środowisku IDE programu Visual Studio.
SetConfiguration Ciąg opcjonalny. Ustawia właściwość globalną Configuration dla przywołytowanego projektu, na przykład Configuration=Release.
SetPlatform Ciąg opcjonalny. Ustawia właściwość globalną Platform dla przywołytowanego projektu, na przykład Platform=AnyCPU.
SetTargetFramework Ciąg opcjonalny. Ustawia właściwość globalną TargetFramework dla przywołytowanego projektu, na przykład TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Opcjonalna wartość logiczna. Jeśli true, kompiluje przywołyny projekt bez negocjowania najbardziej zgodnej wartości TargetFramework. Wartość domyślna to false.
Targets Opcjonalne string[]. Rozdzielona średnikami lista obiektów docelowych w projektach, do których należy utworzyć odwołanie. Wartość domyślna to wartość $(ProjectReferenceBuildTargets), która domyślnie ma wartość pustą wskazującą domyślne obiekty docelowe. Podczas kompilowania w programie Visual Studio (w przeciwieństwie do MSBuild.exe lub dotnet build) określenie tego elementu nie uniemożliwia programowi Visual Studio kompilowania domyślnych elementów docelowych projektu, do których się odwołujesz.

Note

Istnieje różnica między sposobem działania odwołań projektu między programem .NET Framework i platformą .NET Core (w tym platformą .NET 5 i nowszymi wersjami). W projektach .NET Framework odwołania do projektu nie są przechodnie. Oznacza to, że jeśli program Project1 odwołuje się do programu Project2 i Project2 odwołuje się do programu Project3, nie można kodować względem programu Project3 z programu Project1. Jednak w programie .NET Core (w tym .NET 5 lub nowszym) odwołania do projektu przechodnie. Kod można wykonać względem programu Project3 w programie Project1.

Compile

Reprezentuje pliki źródłowe kompilatora.

Nazwa metadanych elementu Description
DependentUpon Ciąg opcjonalny. Określa plik, który jest zależny od poprawnego kompilowania.
AutoGen Opcjonalna wartość logiczna. Wskazuje, czy plik został wygenerowany dla projektu przez zintegrowane środowisko projektowe (IDE) programu Visual Studio. Wartość domyślna to false.
Link Ciąg opcjonalny. Ścieżka notacyjna, która ma być wyświetlana, gdy plik znajduje się fizycznie poza wpływem pliku projektu.
Visible Opcjonalna wartość logiczna. Wskazuje, czy plik ma być wyświetlany w Eksploratorze rozwiązań w programie Visual Studio. Wartość domyślna to true.
CopyToOutputDirectory Ciąg opcjonalny. Określa, czy skopiować plik do katalogu wyjściowego. Wartości to:

1. Nigdy
2. Zawsze
3. ZachowajNowy
4. IfDifferent

Wartość domyślna to Never , jeśli DefineExplicitDefaults jest ustawiona na true; w przeciwnym razie wartość domyślna to pusty ciąg.

EmbeddedResource

Reprezentuje zasoby, które mają być osadzone w wygenerowanych zestawach.

Nazwa metadanych elementu Description
Culture Ciąg opcjonalny. Określa kulturę pliku zasobu. Jeśli zostanie określony, proces kompilacji nie wywnioskuje automatycznie kultury na podstawie rozszerzenia pliku (który jest zależny od kultur dostępnych dla platformy .NET/OS na maszynie obsługującej kompilację). Ustawienie metadanych Culture={culture identifier} lub WithCulture=false jest zdecydowanie zalecane.
WithCulture Opcjonalny bool. Określa, że plik jest neutralny dla kultury, a wykrywanie kultury przez AssignCulture zadanie powinno zostać pominięte. Ustawienie metadanych Culture={culture identifier} lub WithCulture=false jest zdecydowanie zalecane.
DependentUpon Ciąg opcjonalny. Określa plik, od który ten plik zależy od poprawnego skompilowania
Generator Ciąg opcjonalny. Nazwa dowolnego generatora plików uruchomionego w tym elemencie.
LastGenOutput Ciąg opcjonalny. Nazwa pliku, który został utworzony przez dowolny generator plików uruchomiony w tym elemencie.
CustomToolNamespace Ciąg opcjonalny. Przestrzeń nazw, w której każdy generator plików uruchomiony w tym elemencie powinien utworzyć kod.
Link Ciąg opcjonalny. Ścieżka notacyjna jest wyświetlana, jeśli plik znajduje się fizycznie poza wpływem projektu.
Visible Opcjonalna wartość logiczna. Wskazuje, czy plik ma być wyświetlany w Eksploratorze rozwiązań w programie Visual Studio.
CopyToOutputDirectory Ciąg opcjonalny. Określa, czy skopiować plik do katalogu wyjściowego. Wartości to:

1. Nigdy
2. Zawsze
3. ZachowajNowy
4. IfDifferent

Wartość domyślna to Never , jeśli DefineExplicitDefaults jest ustawiona na true; w przeciwnym razie wartość domyślna to pusty ciąg.
LogicalName Wymagany ciąg. Nazwa logiczna osadzonego zasobu.

Content

Reprezentuje pliki, które nie są kompilowane w projekcie, ale mogą być osadzone lub publikowane razem z nim.

Nazwa metadanych elementu Description
DependentUpon Ciąg opcjonalny. Określa plik, który jest zależny od poprawnego kompilowania.
Generator Ciąg opcjonalny. Nazwa dowolnego generatora plików uruchomionego w tym elemencie.
LastGenOutput Ciąg opcjonalny. Nazwa pliku, który został utworzony przez dowolny generator plików, który został uruchomiony w tym elemencie.
CustomToolNamespace Ciąg opcjonalny. Przestrzeń nazw, w której każdy generator plików uruchomiony w tym elemencie powinien utworzyć kod.
Link Ciąg opcjonalny. Ścieżka notacyjna do wyświetlenia, jeśli plik znajduje się fizycznie poza wpływem projektu.
PublishState Wymagany ciąg. Stan publikowania zawartości:

- Domyślny
-Zawarte
-Wykluczone
-Datafile
-Warunek wstępny
IsAssembly Opcjonalna wartość logiczna. Określa, czy plik jest zestawem.
Visible Opcjonalna wartość logiczna. Wskazuje, czy plik ma być wyświetlany w Eksploratorze rozwiązań w programie Visual Studio.
CopyToOutputDirectory Ciąg opcjonalny. Określa, czy skopiować plik do katalogu wyjściowego. Wartości to:

1. Nigdy
2. Zawsze
3. ZachowajNowy
4. IfDifferent

Wartość domyślna to Never , jeśli DefineExplicitDefaults jest ustawiona na true; w przeciwnym razie wartość domyślna to pusty ciąg.
TargetPath Ciąg opcjonalny. Ścieżka wyjściowa (względem katalogu wyjściowego specyficznego dla konfiguracji i/lub platformy) elementu, w tym nazwy pliku. Uwzględnia to metadane Link, jeśli zostały podane. Jeśli parametr TargetPath nie jest podany, jest obliczany podczas procesu kompilacji. Zobacz AssignTargetPath.

None

Reprezentuje pliki, które nie powinny mieć roli w procesie kompilacji.

Nazwa metadanych elementu Description
DependentUpon Ciąg opcjonalny. Określa plik, który jest zależny od poprawnego kompilowania.
Generator Ciąg opcjonalny. Nazwa dowolnego generatora plików uruchomionego w tym elemencie.
LastGenOutput Ciąg opcjonalny. Nazwa pliku, który został utworzony przez dowolny generator plików uruchomiony w tym elemencie.
CustomToolNamespace Ciąg opcjonalny. Przestrzeń nazw, w której każdy generator plików uruchomiony w tym elemencie powinien utworzyć kod.
Link Ciąg opcjonalny. Ścieżka notacyjna do wyświetlenia, jeśli plik znajduje się fizycznie poza wpływem projektu.
Visible Opcjonalna wartość logiczna. Wskazuje, czy plik ma być wyświetlany w Eksploratorze rozwiązań w programie Visual Studio.
CopyToOutputDirectory Ciąg opcjonalny. Określa, czy skopiować plik do katalogu wyjściowego. Wartości to:

1. Nigdy
2. Zawsze
3. ZachowajNowy
4. IfDifferent

Wartość domyślna to Never , jeśli DefineExplicitDefaults jest ustawiona na true; w przeciwnym razie wartość domyślna to pusty ciąg.

AssemblyMetadata

Reprezentuje atrybuty zestawu do wygenerowania jako [AssemblyMetadata(key, value)].

Nazwa metadanych elementu Description
Include Staje się pierwszym parametrem (kluczem) w konstruktorze atrybutu AssemblyMetadataAttribute.
Value Wymagany ciąg. Staje się drugim parametrem (wartością) w konstruktorze atrybutu AssemblyMetadataAttribute.

Note

Ten element dotyczy projektów korzystających z zestawu SDK dla platformy .NET 5 (i .NET Core) oraz nowszych wersji.

InternalsVisibleTo

Określa zestawy, które mają być emitowane jako [InternalsVisibleTo(..)] atrybutów zestawu.

Nazwa metadanych elementu Description
Include Nazwa zestawu.
Key Ciąg opcjonalny. Klucz publiczny zestawu.

Note

Ten element dotyczy projektów korzystających z zestawu SDK dla platformy .NET 5 (i .NET Core) oraz nowszych wersji.

BaseApplicationManifest

Reprezentuje podstawowy manifest aplikacji dla kompilacji i zawiera informacje o zabezpieczeniach wdrożenia Technologii ClickOnce.

CodeAnalysisImport

Reprezentuje projekt FxCop do zaimportowania.

Import

Reprezentuje zestawy, których przestrzenie nazw powinny być importowane przez kompilator języka Visual Basic.

Folder

Ten element jest używany tylko przez program Visual Studio jako symbol zastępczy pustego folderu. Po wypełnieniu folderu zostanie on zastąpiony przez inny element.

Zobacz także