MSBuild-referens för .NET Desktop SDK-projekt
Det här page är en referens för MSBuild-egenskaper och objekt som du använder för att konfigurera Windows Forms-projekt (WinForms) och Windows Presentation Foundation (WPF) med .NET Desktop SDK.
Kommentar
Den här artikeln dokumenterar en delmängd av MSBuild-egenskaperna för .NET SDK när det gäller skrivbordsappar. En lista över vanliga .NET SDK-specifika MSBuild-egenskaper finns i MSBuild-referens för .NET SDK-projekt. En lista över vanliga MSBuild-egenskaper finns i Vanliga MSBuild-egenskaper.
Aktivera .NET Desktop SDK
Om du vill använda WinForms eller WPF anger du följande inställningar i projektfilen för ditt WinForms- eller WPF-projekt:
- Rikta in dig på .NET SDK
Microsoft.NET.Sdk
. Mer information finns i Projektfiler. - Ange
TargetFramework
till en Windows-specifik målramverksmoniker, till exempelnet8.0-windows
. - Lägg till en UI Framework-egenskap (eller båda, om det behövs):
- Ange
UseWPF
till för atttrue
importera och använda WPF. - Ange
UseWindowsForms
till för atttrue
importera och använda WinForms.
- Ange
- (Valfritt) Ange
OutputType
tillWinExe
. Den här inställningen skapar en app i stället för ett bibliotek. Om du vill skapa ett bibliotek utelämnar du den här egenskapen.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<!-- and/or -->
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
WPF-standard inkluderar och exkluderar
SDK-projekt definierar en uppsättning regler för att implicit inkludera eller exkludera filer från projektet. Dessa regler anger också automatiskt filens byggåtgärd. Det här beteendet skiljer sig från äldre .NET Framework-projekt som inte har några standardregler för inkludering eller exkludering. .NET Framework-projekt kräver att du uttryckligen deklarerar vilka filer som ska ingå i projektet.
.NET-projektfiler innehåller en standarduppsättning regler för automatisk bearbetning av filer. WPF-projekt lägger till ytterligare regler.
Följande tabell visar vilka element och globs som ingår och exkluderas i .NET Desktop SDK när projektegenskapen UseWPF
är inställd på true
:
Element | Inkludera glob | Exkludera glob | Ta bort glob |
---|---|---|---|
ApplicationDefinition | App.xaml eller Application.xaml | Saknas | Saknas |
Page | **/*.xaml | **/*.användare; **/*.*proj; **/*.sln; **/*.vssscc Alla XAML som definieras av ApplicationDefinition |
Saknas |
None | Saknas | Saknas | **/*.xaml |
Här är standardinställningarna för att inkludera och exkludera för alla projekttyper. Mer information finns i Standard inkluderar och exkluderar.
Element | Inkludera glob | Exkludera glob | Ta bort glob |
---|---|---|---|
Compile | **/*.Cs; **/*.vb (eller andra språktillägg) | **/*.användare; **/*.*proj; **/*.sln; **/*.vssscc | Ej tillämpligt |
EmbeddedResource | **/*.resx | **/*.användare; **/*.*proj; **/*.sln; **/*.vssscc | Ej tillämpligt |
None | **/* | **/*.användare; **/*.*proj; **/*.sln; **/*.vssscc | **/*.Cs; **/*.resx |
Fel som rör "duplicerade" objekt
Om du uttryckligen har lagt till filer i projektet eller har XAML-globs för att automatiskt inkludera filer i projektet kan du få något av följande fel:
- Duplicerade objektApplicationDefinition inkluderades.
- Duplicerade objektPage inkluderades.
Dessa fel är ett resultat av att implicita Inkludera globs står i konflikt med dina inställningar. Om du vill undvika det här problemet anger du antingen EnableDefaultApplicationDefinition
eller EnableDefaultPageItems
till false
. Om du anger dessa värden återgår false
du till beteendet för tidigare SDK:er där du uttryckligen måste definiera standardglober eller de filer som ska inkluderas i projektet.
Du kan helt inaktivera alla implicita inkluderingar genom att ange egenskapen EnableDefaultItems
till .false
WPF-inställningar
Information om icke-WPF-specifika projektinställningar finns i MSBuild-referens för .NET SDK-projekt.
UseWPF
Egenskapen UseWPF
styr om referenser till WPF-bibliotek ska inkluderas eller inte. Den här inställningen ändrar även MSBuild-pipelinen för att bearbeta ett WPF-projekt och relaterade filer korrekt. Standardvärdet är false
. Ange egenskapen UseWPF
till true
för att aktivera WPF-stöd. Du kan bara rikta in dig på Windows-plattformen när den här egenskapen är aktiverad.
<PropertyGroup>
<UseWPF>true</UseWPF>
</PropertyGroup>
När den här egenskapen är inställd på true
importerar .NET-projekt automatiskt .NET Desktop SDK.
EnableDefaultApplicationDefinition
Egenskapen EnableDefaultApplicationDefinition
styr om ApplicationDefinition
objekt implicit ingår i projektet. Standardvärdet är true
. Ange egenskapen EnableDefaultApplicationDefinition
till false
för att inaktivera implicit filinkludering.
<PropertyGroup>
<EnableDefaultApplicationDefinition>false</EnableDefaultApplicationDefinition>
</PropertyGroup>
Den här egenskapen kräver att egenskapen EnableDefaultItems
är inställd på true
, vilket är standardinställningen.
EnableDefaultPageItems
Egenskapen EnableDefaultPageItems
styr om Page
objekt, som är .xaml-filer , implicit ingår i projektet. Standardvärdet är true
. Ange egenskapen EnableDefaultPageItems
till false
för att inaktivera implicit filinkludering.
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Den här egenskapen kräver att egenskapen EnableDefaultItems
är inställd på true
, vilket är standardinställningen.
Inställningar för Windows-formulär
- ApplicationDefaultFont
- ApplicationHighDpiMode
- ApplicationUseCompatibleTextRendering
- ApplicationVisualStyles
- AnvändaWindowsForms
Information om icke-WinForms-specifika projektegenskaper finns i MSBuild-referens för .NET SDK-projekt.
ApplicationDefaultFont
Egenskapen ApplicationDefaultFont
anger anpassad teckensnittsinformation som ska tillämpas i hela programmet. Den styr om det källgenererade ApplicationConfiguration.Initialize()
API:et sänder ett anrop till Application.SetDefaultFont(Font) metoden eller inte.
Standardvärdet är en tom sträng, och det innebär att programmets standardteckensnitt kommer från egenskapen Control.DefaultFont .
Ett icke-tomt värde måste överensstämma med ett format som motsvarar utdata från metoden FontConverter.ConvertTo
som anropas med den invarianta kulturen (det vill: listavgränsare=,
och decimalavgränsare=.
). Formatet är: name, size[units[, style=style1[, style2, ...]]]
.
<PropertyGroup>
<ApplicationDefaultFont>Calibri, 11pt, style=regular</ApplicationDefaultFont>
</PropertyGroup>
Den här egenskapen stöds av .NET 6 och senare versioner och Visual Studio 2022 och senare versioner.
ApplicationHighDpiMode
Egenskapen ApplicationHighDpiMode
anger standardvärdet för hela programmet för det höga DPI-läget. Den styr argumentet för den Application.SetHighDpiMode(HighDpiMode) metod som genereras av det källgenererade API:et ApplicationConfiguration.Initialize()
.
Standardvärdet är SystemAware
.
<PropertyGroup>
<ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
</PropertyGroup>
ApplicationHighDpiMode
Kan anges till ett av uppräkningsvärdenaHighDpiMode:
Värde | beskrivning |
---|---|
DpiUnaware |
Programfönstret skalas inte för DPI-ändringar och förutsätter alltid en skalningsfaktor på 100 %. |
DpiUnawareGdiScaled |
DpiUnaware Liknar , men förbättrar kvaliteten på GDI/GDI+-baserat innehåll. |
PerMonitor |
Fönstret söker efter DPI när det skapas och justerar skalningsfaktorn när DPI ändras. |
PerMonitorV2 |
PerMonitor Liknar , men aktiverar DPI-ändringsmeddelande för underordnade fönster, förbättrad skalning av comctl32-kontroller och dialogskalning. |
SystemAware |
Standard om det inte anges. Fönstret frågar efter DPI för den primära övervakaren en gång och använder det här värdet för programmet på alla övervakare. |
Den här egenskapen stöds av .NET 6 och senare versioner.
ApplicationUseCompatibleTextRendering
Egenskapen ApplicationUseCompatibleTextRendering
anger standardvärdet för hela programmet för egenskapen UseCompatibleTextRendering
som definierats för vissa kontroller. Den styr argumentet för den Application.SetCompatibleTextRenderingDefault(Boolean) metod som genereras av det källgenererade API:et ApplicationConfiguration.Initialize()
.
Standardvärdet är false
.
<PropertyGroup>
<ApplicationUseCompatibleTextRendering>true</ApplicationUseCompatibleTextRendering>
</PropertyGroup>
Den här egenskapen stöds av .NET 6 och senare versioner.
ApplicationVisualStyles
Egenskapen ApplicationVisualStyles
anger den programomfattande standardinställningen för aktivering av visuella format. Den styr om det källgenererade ApplicationConfiguration.Initialize()
API:et genererar ett anrop till Application.EnableVisualStyles().
Standardvärdet är true
.
<PropertyGroup>
<ApplicationVisualStyles>true</ApplicationVisualStyles>
</PropertyGroup>
Den här egenskapen stöds av .NET 6 och senare versioner.
AnvändaWindowsForms
Egenskapen UseWindowsForms
styr om ditt program har skapats för att rikta in sig på Windows-formulär. Den här egenskapen ändrar MSBuild-pipelinen för att bearbeta ett Windows Forms-projekt och relaterade filer korrekt. Standardvärdet är false
. Ange egenskapen UseWindowsForms
till true
för att aktivera stöd för Windows Forms. Du kan bara rikta in dig på Windows-plattformen när den här inställningen är aktiverad.
<PropertyGroup>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
När den här egenskapen är inställd på true
importerar .NET-projekt automatiskt .NET Desktop SDK.