Dela via


Vanliga MSBuild-projektobjekt

I MSBuild är ett objekt en namngiven referens till en eller flera strängar, till exempel filnamn. Objekt innehåller metadata som filnamn, sökvägar och versionsnummer. Alla projekttyper i Visual Studio har flera objekt gemensamt. Dessa objekt definieras i filen Microsoft.Build.CommonTypes.xsd.

I den här artikeln visas alla vanliga projektobjekt som definierats i själva MSBuild. Objekt och egenskaper som tillhandahålls av .NET SDK dokumenteras i MSBuild-referensen för Microsoft.Net.Sdk.

Reference

Representerar en .NET-sammansättningsreferens (hanterad) i projektet.

Objektmetadatanamn Beskrivning
HintPath Valfri sträng. Relativ eller absolut sökväg för sammansättningen.
Namn Valfri sträng. Visningsnamnet för sammansättningen, till exempel "System.Windows.Forms".
FusionName Valfri sträng. Anger det enkla eller starka fusionsnamnet för objektet.

När det här attributet finns kan det spara tid eftersom sammansättningsfilen inte behöver öppnas för att hämta fusionsnamnet.
SpecificVersion Valfritt booleskt värde. Anger om endast versionen i fusionsnamnet ska refereras till.
Alias Valfri sträng. Eventuella alias för referensen.
Privat Valfritt booleskt värde. Anger om referensen ska kopieras till utdatamappen. Det här attributet matchar egenskapen Kopiera lokal för referensen som finns i Visual Studio IDE.

Not

Objekttypen Reference kan också användas för att referera till förgenererade omslutningssammansättningar för interna COM-objekt, till exempel om du använde tlbimp.exe för att generera en PIA (Primär interop-sammansättning). Den här typen av referens är ett lämpligt val när du vill förgenerera COM-omslutningsuppsättningen själv med kända indata, i stället för att förlita dig på MSBuilds algoritm för att generera COM-omslutningar vid byggtiden, vilket introducerar ett beroende av systemregistrets tillstånd på den byggdator där MSBuild körs.

COMReference

Representerar en com-komponentreferens (ohanterad) i projektet. Det här objektet används av uppgiften ResolveComReference, som genererar omslutningssammansättningarna, eller, om EmbedInteropTypes det används, bäddar in interop-typerna i din sammansättning. Med den här typen av referens introduceras ett beroende av systemregistret på byggdatorn, som används för att leta upp det refererade COM-objektet. COM-artefakter och COM-poster i registret kan ändras när produkter installeras, uppdateras eller avinstalleras på datorn (eller när du kör samma version på en annan dator), vilket potentiellt skapar en annan omslutningsuppsättning även om bygglogik inte har ändrats.

Det här objektet gäller inte för non-.NET projekt.

Objektmetadatanamn Beskrivning
Namn Valfri sträng. Komponentens visningsnamn.
GUID Obligatorisk sträng. Ett GUID för komponenten i formuläret {12345678-1234-1234-1234-123456781234}.
VersionMajor Obligatorisk sträng. Huvuddelen av komponentens versionsnummer. Till exempel "5" om det fullständiga versionsnumret är "5.46".
VersionMinor Obligatorisk sträng. Deldelen av komponentens versionsnummer. Till exempel "46" om det fullständiga versionsnumret är "5.46".
EmbedInteropTypes Valfritt booleskt värde. Om det är sant bäddar du in interop-typerna från den här referensen direkt i sammansättningen i stället för att generera en interop-DLL.
Lcid Valfri sträng. LocaleID för komponenten.
WrapperTool Valfri sträng. Namnet på det omslutningsverktyg som används på komponenten. Värden är:

1. Primär
2. tlbimp
3. primaryortlbimp
4. aximp
Isolerad Valfritt booleskt värde. Anger om komponenten är en regfri komponent.

COMFileReference

Representerar en lista med typbibliotek som ska refereras efter filsökväg, i stället för att använda systemregistret. Den här typen av referens kan vara ett bra alternativ till COMReference i fall där du vill undvika ett beroende av byggdatorns register, antingen för att kontot som kör bygget inte har utökade behörigheter för att redigera registret på byggservern eller för att du inte vill att bygget ska ha ett beroende av registrets tillstånd. Om du använder COMFileReference för att referera till en artefakt på en systemsökväg har bygget ett beroende av systemtillståndet. Om systemartefakten ändras på grund av en ändring i systemets tillstånd, till exempel när produkter installeras, uppdateras eller avinstalleras (eller om du kör samma version på en annan dator), kan omslutningssammansättningen ändras, även om bygglogik inte har ändrats. För att säkerställa ett konsekvent byggresultat kan du cachelagrat en känd kopia av COM-artefakten på en plats som du kontrollerar, till exempel under projekt- eller lösningsmappen, och referera till den i stället för systemartefakten.

Det här objektet gäller inte för non-.NET projekt.

Objektmetadatanamn Beskrivning
EmbedInteropTypes Valfritt booleskt värde. Om det är sant bäddar du in interop-typerna från den här referensen direkt i sammansättningen i stället för att generera en interop-DLL.
WrapperTool Valfri sträng. Namnet på det omslutningsverktyg som används på komponenten. Värden är:

1. Primär
2. tlbimp
3. primaryortlbimp
4. aximp

NativeReference

Representerar en intern manifestfil eller en referens till en sådan fil.

Objektmetadatanamn Beskrivning
Namn Obligatorisk sträng. Basnamnet för manifestfilen.
HintPath Obligatorisk sträng. Den relativa sökvägen för manifestfilen.

ProjectReference (på engelska)

Representerar en referens till ett annat projekt. ProjectReference objekt omvandlas till referensobjekt av ResolveProjectReferences målet, så giltiga metadata på en referens kan vara giltiga på ProjectReference, om omvandlingsprocessen inte skriver över den.

Objektmetadatanamn Beskrivning
Namn Valfri sträng. Referensens visningsnamn.
GlobalPropertiesToRemove Valfritt string[]. Namn på egenskaper som ska tas bort när du skapar det refererade projektet, till exempel RuntimeIdentifier;PackOnBuild. Standardvärdet är tomt.
Projekt Valfri sträng. Ett GUID för referensen i formuläret {12345678-1234-1234-1234-123456781234}.
OutputItemType Valfri sträng. Objekttyp som målutdata ska genereras till. Standardvärdet är tomt. Om referensmetadata är inställt på "true" (standard) blir målutdata referenser för kompilatorn.
ReferenceOutputAssembly Valfritt booleskt värde. Om värdet falseär inställt på innehåller inte utdata från det refererade projektet som referens för det här projektet, men ser ändå till att det andra projektet skapas före det här projektet. Standardvärdet är true.
Privat Valfritt booleskt värde. Anger om referensen ska kopieras till utdatamappen. Det här attributet matchar egenskapen Kopiera lokal för referensen som finns i Visual Studio IDE.
SetConfiguration Valfri sträng. Anger den globala egenskapen Configuration för det refererade projektet, till exempel Configuration=Release.
SetPlatform Valfri sträng. Anger den globala egenskapen Platform för det refererade projektet, till exempel Platform=AnyCPU.
SetTargetFramework Valfri sträng. Anger den globala egenskapen TargetFramework för det refererade projektet, till exempel TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Valfritt booleskt värde. Om trueskapar du det refererade projektet utan att förhandla om det mest kompatibla TargetFramework värdet. Standardvärdet är false.
Mål Valfritt string[]. Semikolonavgränsad lista över mål i de refererade projekt som ska skapas. Standardvärdet är värdet för $(ProjectReferenceBuildTargets), som standard är tomt, vilket anger standardmålen. När du skapar i Visual Studio (till skillnad från MSBuild.exe eller dotnet build) förhindrar inte att Visual Studio anger standardmålen för det refererade projektet.

Not

Det finns en skillnad mellan hur projektreferenser fungerar mellan .NET Framework och .NET Core (inklusive .NET 5 och senare). I .NET Framework-projekt är projektreferenser inte transitiva. Om Project1 refererar till Project2 och Project2 refererar till Project3 kan du alltså inte koda mot Project3 från Project1. Men i .NET Core (inklusive .NET 5 och senare) är projektreferenser transitiva. Du kan koda mot Project3 i Project1.

Kompilera

Representerar kompilatorns källfiler.

Objektmetadatanamn Beskrivning
DependentUpon Valfri sträng. Anger vilken fil filen är beroende av för att kompilera korrekt.
Autogen Valfritt booleskt värde. Anger om filen genererades för projektet av Visual Studio Integrated Development Environment (IDE).
Länk Valfri sträng. Den notationella sökväg som ska visas när filen finns fysiskt utanför projektfilens påverkan.
Synlig Valfritt booleskt värde. Anger om filen ska visas i Solution Explorer i Visual Studio.
CopyToOutputDirectory Valfri sträng. Avgör om filen ska kopieras till utdatakatalogen. Värden är:

1. Aldrig
2. Alltid
3. PreserveNewest
4. IfDifferent

EmbeddedResource

Representerar resurser som ska bäddas in i den genererade sammansättningen.

Objektmetadatanamn Beskrivning
Kultur Valfri sträng. Anger resursfilens kultur. Om det anges härleder inte byggprocessen kulturen automatiskt baserat på filnamnstillägget (som är beroende av de kulturer som är tillgängliga för .NET/OS på den dator som är värd för bygget). Vi rekommenderar att du anger antingen Culture={culture identifier} eller WithCulture=false metadata.
WithCulture Valfri bool. Anger att filen är kulturneutral och att kulturidentifiering av AssignCulture uppgift ska hoppas över. Vi rekommenderar att du anger antingen Culture={culture identifier} eller WithCulture=false metadata.
DependentUpon Valfri sträng. Anger vilken fil filen är beroende av för att kompilera korrekt
Generator Valfri sträng. Namnet på alla filgeneratorer som körs på det här objektet.
LastGenOutput Valfri sträng. Namnet på filen som skapades av en filgenerator som kördes på det här objektet.
CustomToolNamespace Valfri sträng. Namnområdet där alla filgeneratorer som körs på det här objektet ska skapa kod.
Länk Valfri sträng. Notationssökvägen visas om filen finns fysiskt utanför projektets påverkan.
Synlig Valfritt booleskt värde. Anger om filen ska visas i Solution Explorer i Visual Studio.
CopyToOutputDirectory Valfri sträng. Avgör om filen ska kopieras till utdatakatalogen. Värden är:

1. Aldrig
2. Alltid
3. PreserveNewest
4. IfDifferent
LogicalName Obligatorisk sträng. Det logiska namnet på den inbäddade resursen.

Innehåll

Representerar filer som inte kompileras till projektet, men som kan bäddas in eller publiceras tillsammans med det.

Objektmetadatanamn Beskrivning
DependentUpon Valfri sträng. Anger vilken fil filen är beroende av för att kompilera korrekt.
Generator Valfri sträng. Namnet på alla filgeneratorer som körs på det här objektet.
LastGenOutput Valfri sträng. Namnet på filen som skapades av en filgenerator som kördes på det här objektet.
CustomToolNamespace Valfri sträng. Namnområdet där alla filgeneratorer som körs på det här objektet ska skapa kod.
Länk Valfri sträng. Den notationella sökväg som ska visas om filen finns fysiskt utanför projektets påverkan.
PublishState Obligatorisk sträng. Publiceringstillståndet för innehållet, antingen:

-Standard
-Inkluderad
-Utesluten
-Datafile
-Förutsättning
IsAssembly Valfritt booleskt värde. Anger om filen är en sammansättning.
Synlig Valfritt booleskt värde. Anger om filen ska visas i Solution Explorer i Visual Studio.
CopyToOutputDirectory Valfri sträng. Avgör om filen ska kopieras till utdatakatalogen. Värden är:

1. Aldrig
2. Alltid
3. PreserveNewest
4. IfDifferent
Målväg Valfri sträng. Utdatasökvägen (i förhållande till konfigurations- och/eller plattformsspecifik utdatakatalog) för ett objekt, inklusive filnamnet. Detta respekterar Link metadata, om det tillhandahålls. Om TargetPath inte tillhandahålls beräknas det under byggprocessen. Se AssignTargetPath.

Ingen

Representerar filer som inte ska ha någon roll i byggprocessen.

Objektmetadatanamn Beskrivning
DependentUpon Valfri sträng. Anger vilken fil filen är beroende av för att kompilera korrekt.
Generator Valfri sträng. Namnet på alla filgeneratorer som körs på det här objektet.
LastGenOutput Valfri sträng. Namnet på filen som skapades av en filgenerator som kördes på det här objektet.
CustomToolNamespace Valfri sträng. Namnområdet där alla filgeneratorer som körs på det här objektet ska skapa kod.
Länk Valfri sträng. Den notationella sökväg som ska visas om filen finns fysiskt utanför projektets påverkan.
Synlig Valfritt booleskt värde. Anger om filen ska visas i Solution Explorer i Visual Studio.
CopyToOutputDirectory Valfri sträng. Avgör om filen ska kopieras till utdatakatalogen. Värden är:

1. Aldrig
2. Alltid
3. PreserveNewest
4. IfDifferent

AssemblyMetadata

Representerar sammansättningsattribut som ska genereras som [AssemblyMetadata(key, value)].

Objektmetadatanamn Beskrivning
Inbegripa Blir den första parametern (nyckeln) i AssemblyMetadataAttribute attributkonstruktorn.
Värde Obligatorisk sträng. Blir den andra parametern (värdet) i AssemblyMetadataAttribute attributkonstruktorn.

Not

Det här objektet gäller för projekt som använder SDK för .NET 5 (och .NET Core) och senare versioner.

InternalsVisibleTo

Anger sammansättningar som ska genereras som [InternalsVisibleTo(..)] sammansättningsattribut.

Objektmetadatanamn Beskrivning
Inbegripa Sammansättningsnamnet.
Nyckel Valfri sträng. Den offentliga nyckeln för sammansättningen.

Not

Det här objektet gäller för projekt som använder SDK för .NET 5 (och .NET Core) och senare versioner.

BaseApplicationManifest

Representerar basprogrammanifestet för bygget och innehåller säkerhetsinformation om ClickOnce-distributionen.

CodeAnalysisImportera

Representerar fxcop-projektet som ska importeras.

Importera

Representerar sammansättningar vars namnområden ska importeras av Visual Basic-kompilatorn.

Mapp

Det här elementet används endast av Visual Studio som platshållare för en tom mapp. När mappen är ifylld ersätts den av ett annat element.

Se även