Sdílet prostřednictvím


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říklad net8.0-windows.
  • V případě potřeby přidejte vlastnost architektury uživatelského rozhraní (nebo obojí):
    • Nastavte UseWPF na true import a použití WPF.
    • Nastavte UseWindowsForms na true import a použití WinForms.
  • (Volitelné) Nastavit OutputType na WinExehodnotu . 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

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 falsehodnotu .

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

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 DpiUnawarePodobá 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 PerMonitorPodobně 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.

Viz také