Referenční dokumentace nástroje MSBuild pro projekty .NET Desktop SDK
Toto page je referenční informace o vlastnostech a položkách nástroje MSBuild, které slouží ke konfiguraci projektů model Windows Forms (WinForms) a Windows Presentation Foundation (WPF) pomocí sady .NET Desktop SDK.
Poznámka:
Tento článek dokumentuje podmnožinu vlastností NÁSTROJE MSBuild pro sadu .NET SDK, protože souvisí s desktopovou aplikací. Seznam běžných vlastností MSBuild specifických pro sadu .NET SDK naleznete v referenčních informacích k nástroji MSBuild pro projekty sady .NET SDK. Seznam běžných vlastností nástroje MSBuild naleznete v části Společné vlastnosti nástroje MSBuild.
Povolení sady .NET Desktop SDK
Chcete-li použít WinForms nebo WPF, zadejte následující nastavení v souboru projektu WinForms nebo WPF projektu:
- Cílení na sadu .NET SDK
Microsoft.NET.Sdk
Další informace najdete v tématu Soubory projektu. - Nastavte
TargetFramework
na moniker cílové architektury specifické pro Windows, napříkladnet8.0-windows
. - V případě potřeby přidejte vlastnost architektury uživatelského rozhraní (nebo obojí):
- Nastavte
UseWPF
natrue
import a použití WPF. - Nastavte
UseWindowsForms
natrue
import a použití WinForms.
- Nastavte
- (Volitelné) Nastavit
OutputType
naWinExe
hodnotu . Toto nastavení vytvoří aplikaci na rozdíl od knihovny. Chcete-li vytvořit knihovnu, vynecháte tuto vlastnost.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<!-- and/or -->
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
Výchozí nastavení WPF zahrnuje a vylučuje
Projekty sady SDK definují sadu pravidel pro implicitní zahrnutí nebo vyloučení souborů z projektu. Tato pravidla také automaticky nastavují akci sestavení souboru. Toto chování je na rozdíl od starších projektů .NET Framework, které nemají výchozí zahrnutí nebo vyloučení pravidel. Projekty rozhraní .NET Framework vyžadují explicitní deklaraci souborů, které mají být zahrnuty do projektu.
Soubory projektu .NET obsahují standardní sadu pravidel pro automatické zpracování souborů. Projekty WPF přidávají další pravidla.
Následující tabulka ukazuje, které prvky a globy jsou zahrnuty a vyloučeny v sadě .NET Desktop SDK, pokud UseWPF
je vlastnost projektu nastavena na true
:
Element (Prvek) | Zahrnout glob | Vyloučení globu | Odebrání globu |
---|---|---|---|
ApplicationDefinition | App.xaml nebo Application.xaml | – | N/A |
Page | **/*.xaml | **/*.uživatel; **/*.*proj; **/*.sln; **/*.vssscc Libovolný KÓD XAML definovaný pomocí ApplicationDefinition |
– |
None | – | N/A | **/*.xaml |
Tady je výchozí nastavení zahrnutí a vyloučení pro všechny typy projektů. Další informace naleznete v tématu Výchozí zahrnutí a vyloučení.
Element (Prvek) | Zahrnout glob | Vyloučení globu | Odebrání globu |
---|---|---|---|
Compile | **/*.Cs; **/*.vb (nebo jiná jazyková rozšíření) | **/*.uživatel; **/*.*proj; **/*.sln; **/*.vssscc | – |
EmbeddedResource | **/*.resx | **/*.uživatel; **/*.*proj; **/*.sln; **/*.vssscc | – |
None | **/* | **/*.uživatel; **/*.*proj; **/*.sln; **/*.vssscc | **/*.Cs; **/*.resx |
Chyby související s duplicitními položkami
Pokud jste do projektu explicitně přidali soubory nebo máte globy XAML k automatickému zahrnutí souborů do projektu, může se zobrazit jedna z následujících chyb:
- ApplicationDefinitionByly zahrnuty duplicitní položky '.
- PageByly zahrnuty duplicitní položky '.
Tyto chyby jsou výsledkem implicitního konfliktu mezi globálními globy, které jsou v konfliktu s nastavením. Chcete-li tento problém vyřešit, nastavte buď EnableDefaultApplicationDefinition
nebo EnableDefaultPageItems
na false
. Nastavením těchto hodnot se vrátíte k false
chování předchozích sad SDK, kde jste museli explicitně definovat výchozí globy nebo soubory, které se mají zahrnout do projektu.
Všechny implicitní zahrnutí můžete úplně zakázat nastavením EnableDefaultItems
vlastnosti na false
hodnotu .
Nastavení WPF
Informace o nastavení projektu specifickém pro WPF naleznete v referenčních informacích nástroje MSBuild pro projekty sady .NET SDK.
UseWPF
Vlastnost UseWPF
určuje, zda zahrnout odkazy na knihovny WPF. Toto nastavení také změní kanál MSBuild tak, aby správně zpracovával projekt WPF a související soubory. Výchozí hodnota je false
. UseWPF
Nastavte vlastnost na true
povolení podpory WPF. Tuto vlastnost můžete cílit pouze na platformu Windows, pokud je tato vlastnost povolená.
<PropertyGroup>
<UseWPF>true</UseWPF>
</PropertyGroup>
Pokud je tato vlastnost nastavena na true
, projekty .NET automaticky importuje sadu .NET Desktop SDK.
EnableDefaultApplicationDefinition
Vlastnost EnableDefaultApplicationDefinition
určuje, zda ApplicationDefinition
jsou položky implicitně zahrnuty do projektu. Výchozí hodnota je true
. EnableDefaultApplicationDefinition
Nastavte vlastnost tak, aby false
zakázala implicitní zahrnutí souboru.
<PropertyGroup>
<EnableDefaultApplicationDefinition>false</EnableDefaultApplicationDefinition>
</PropertyGroup>
Tato vlastnost vyžaduje, aby EnableDefaultItems
byla vlastnost nastavena na true
, což je výchozí nastavení.
EnableDefaultPageItems
Vlastnost EnableDefaultPageItems
řídí, zda Page
položky, které jsou soubory .xaml , jsou implicitně zahrnuty do projektu. Výchozí hodnota je true
. EnableDefaultPageItems
Nastavte vlastnost tak, aby false
zakázala implicitní zahrnutí souboru.
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Tato vlastnost vyžaduje, aby EnableDefaultItems
byla vlastnost nastavena na true
, což je výchozí nastavení.
nastavení model Windows Forms
- ApplicationDefaultFont
- ApplicationHighDpiMode
- ApplicationUseCompatibleTextRendering
- ApplicationVisualStyles
- UseWindowsForms
Informace o vlastnostech projektu specifických pro jiné než WinForms naleznete v tématu Referenční informace nástroje MSBuild pro projekty .NET SDK.
ApplicationDefaultFont
Vlastnost ApplicationDefaultFont
určuje vlastní informace o písmu, které se mají použít pro celou aplikaci. Určuje, jestli zdrojové vygenerované ApplicationConfiguration.Initialize()
rozhraní API generuje volání Application.SetDefaultFont(Font) metody.
Výchozí hodnota je prázdný řetězec a znamená to, že výchozí písmo aplikace je zdroj z Control.DefaultFont vlastnosti.
Neprázdná hodnota musí odpovídat formátu, který odpovídá výstupu metody vyvolané invariantní jazykovou verzí (to znamená oddělovač seznamu =,
a oddělovač desetinných míst=.
).FontConverter.ConvertTo
Formát je: name, size[units[, style=style1[, style2, ...]]]
.
<PropertyGroup>
<ApplicationDefaultFont>Calibri, 11pt, style=regular</ApplicationDefaultFont>
</PropertyGroup>
Tato vlastnost je podporována rozhraním .NET 6 a novějšími verzemi a sadou Visual Studio 2022 a novějšími verzemi.
ApplicationHighDpiMode
Vlastnost ApplicationHighDpiMode
určuje výchozí nastavení celé aplikace pro režim vysokého DPI. Řídí argument Application.SetHighDpiMode(HighDpiMode) metody generované zdrojovým vygenerovaným ApplicationConfiguration.Initialize()
rozhraním API.
Výchozí hodnota je SystemAware
.
<PropertyGroup>
<ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
</PropertyGroup>
Lze ApplicationHighDpiMode
nastavit na jednu z hodnot výčtu HighDpiMode :
Hodnota | Popis |
---|---|
DpiUnaware |
Okno aplikace nemění měřítko změn DPI a vždy předpokládá měřítko 100 %. |
DpiUnawareGdiScaled |
DpiUnaware Podobá se tomu, ale zlepšuje kvalitu obsahu založeného na GDI/GDI+. |
PerMonitor |
Okno kontroluje DPI při vytváření a upravuje faktor měřítka při změně DPI. |
PerMonitorV2 |
PerMonitor Podobně jako v případě , ale umožňuje oznámení o změně DPI podřízeného okna, vylepšené škálování ovládacích prvků comctl32 a škálování dialogů. |
SystemAware |
Výchozí, pokud není zadáno. Okno se dotazuje na DPI primárního monitoru jednou a použije tuto hodnotu pro aplikaci na všech monitorech. |
Tato vlastnost je podporována rozhraním .NET 6 a novějšími verzemi.
ApplicationUseCompatibleTextRendering
Vlastnost ApplicationUseCompatibleTextRendering
určuje výchozí nastavení pro celou aplikaci pro vlastnost definovanou UseCompatibleTextRendering
v určitých ovládacích prvcích. Řídí argument Application.SetCompatibleTextRenderingDefault(Boolean) metody generované zdrojovým vygenerovaným ApplicationConfiguration.Initialize()
rozhraním API.
Výchozí hodnota je false
.
<PropertyGroup>
<ApplicationUseCompatibleTextRendering>true</ApplicationUseCompatibleTextRendering>
</PropertyGroup>
Tato vlastnost je podporována rozhraním .NET 6 a novějšími verzemi.
ApplicationVisualStyles
Vlastnost ApplicationVisualStyles
určuje výchozí nastavení celé aplikace pro povolení vizuálních stylů. Řídí, zda zdrojové generované ApplicationConfiguration.Initialize()
rozhraní API generuje volání Application.EnableVisualStyles().
Výchozí hodnota je true
.
<PropertyGroup>
<ApplicationVisualStyles>true</ApplicationVisualStyles>
</PropertyGroup>
Tato vlastnost je podporována rozhraním .NET 6 a novějšími verzemi.
UseWindowsForms
Vlastnost UseWindowsForms
určuje, jestli je aplikace vytvořená tak, aby cílila na model Windows Forms. Tato vlastnost změní kanál MSBuild tak, aby správně zpracovával model Windows Forms projekt a související soubory. Výchozí hodnota je false
. UseWindowsForms
Nastavte vlastnost tak, aby true
povolte podporu model Windows Forms. Na platformu Windows můžete cílit jenom v případě, že je toto nastavení povolené.
<PropertyGroup>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
Pokud je tato vlastnost nastavena na true
, projekty .NET automaticky importuje sadu .NET Desktop SDK.