Udostępnij za pośrednictwem


Dokumentacja programu MSBuild dla projektów zestawu .NET Desktop SDK

Ta strona jest odwołaniem do właściwości i elementów programu MSBuild używanych do konfigurowania projektów Windows Forms (WinForms) i Windows Presentation Foundation (WPF) przy użyciu zestawu .NET Desktop SDK.

Uwaga

W tym artykule dokumentacji podzestawu właściwości programu MSBuild dla zestawu .NET SDK w odniesieniu do aplikacji klasycznych. Aby uzyskać listę typowych właściwości programu MSBuild specyficznych dla zestawu .NET SDK, zobacz Dokumentacja programu MSBuild dla projektów zestawu .NET SDK. Aby uzyskać listę typowych właściwości programu MSBuild, zobacz Typowe właściwości programu MSBuild.

Włączanie zestawu .NET Desktop SDK

Aby użyć narzędzi WinForms lub WPF, określ następujące ustawienia w pliku projektu WinForms lub WPF:

  • Element docelowy zestawu .NET SDK Microsoft.NET.Sdk. Aby uzyskać więcej informacji, zobacz Pliki programu Project.
  • Ustaw TargetFramework na moniker platformy docelowej specyficznej dla systemu Windows, na przykład net8.0-windows.
  • Dodaj właściwość struktury interfejsu użytkownika (lub obie, jeśli to konieczne):
    • Ustaw UseWPF wartość na wartość , aby true zaimportować i użyć platformy WPF.
    • Ustaw UseWindowsForms wartość na wartość , aby true zaimportować i użyć formularzy WinForms.
  • (Opcjonalnie) Ustaw OutputType wartość WinExe. To ustawienie tworzy aplikację w przeciwieństwie do biblioteki. Aby utworzyć bibliotekę, pomiń tę właściwość.
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net8.0-windows</TargetFramework>

    <UseWPF>true</UseWPF>
    <!-- and/or -->
    <UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>

</Project>

Domyślne dołączanie i wykluczanie WPF

Projekty zestawu SDK definiują zestaw reguł do niejawnego dołączania lub wykluczania plików z projektu. Te reguły automatycznie ustawiają również akcję kompilacji pliku. To zachowanie jest w przeciwieństwie do starszych projektów programu .NET Framework innych niż SDK, które nie mają domyślnych reguł dołączania ani wykluczania. Projekty programu .NET Framework wymagają jawnego zadeklarowania plików do uwzględnienia w projekcie.

Pliki projektu .NET zawierają standardowy zestaw reguł automatycznego przetwarzania plików. Projekty WPF dodają dodatkowe reguły.

W poniższej tabeli przedstawiono, które elementy i symbole globs są uwzględnione i wykluczone w zestawie SDK programu .NET Desktop, gdy UseWPF właściwość projektu jest ustawiona na true:

Element Uwzględnij glob Wyklucz glob Usuń glob
ApplicationDefinition App.xaml lub Application.xaml Brak Brak
Page **/*.Xaml **/*.Użytkownika; **/*.*Proj; **/*.Sln; **/*.Vssscc
Dowolny kod XAML zdefiniowany przez ApplicationDefinition
Brak
None NIE DOTYCZY Brak **/*.Xaml

Poniżej przedstawiono domyślne ustawienia dołączania i wykluczania dla wszystkich typów projektów. Aby uzyskać więcej informacji, zobacz Domyślne dołączanie i wykluczanie.

Element Uwzględnij glob Wyklucz glob Usuń glob
Compile **/*.Cs; **/*.vb (lub inne rozszerzenia językowe) **/*.Użytkownika; **/*.*Proj; **/*.Sln; **/*.Vssscc Nie dotyczy
EmbeddedResource **/*.Resx **/*.Użytkownika; **/*.*Proj; **/*.Sln; **/*.Vssscc Nie dotyczy
None **/* **/*.Użytkownika; **/*.*Proj; **/*.Sln; **/*.Vssscc **/*.Cs; **/*.Resx

W przypadku jawnego dodania plików do projektu lub automatycznego dołączania plików w projekcie do bibliotekI XAML może wystąpić jeden z następujących błędów:

  • Dołączono zduplikowane elementy "ApplicationDefinition".
  • Dołączono zduplikowane elementy "Page".

Te błędy są wynikiem niejawnego dołączania globów powodujących konflikt z ustawieniami. Aby obejść ten problem, ustaw wartość EnableDefaultApplicationDefinition lub EnableDefaultPageItems .false Ustawienie tych wartości, aby przywrócić false zachowanie poprzednich zestawów SDK, w których trzeba było jawnie zdefiniować domyślne globy lub pliki do uwzględnienia w projekcie.

Możesz całkowicie wyłączyć wszystkie niejawne dołączania, ustawiając EnableDefaultItems właściwość na false.

Ustawienia WPF

Aby uzyskać informacje na temat ustawień projektu innych niż WPF, zobacz Dokumentacja programu MSBuild dla projektów zestawu .NET SDK.

UseWPF

Właściwość UseWPF określa, czy należy uwzględnić odwołania do bibliotek WPF. To ustawienie powoduje również zmianę potoku MSBuild w celu poprawnego przetworzenia projektu WPF i powiązanych plików. Domyślna wartość to false. UseWPF Ustaw właściwość na wartość , aby true włączyć obsługę WPF. Platformę systemu Windows można kierować tylko wtedy, gdy ta właściwość jest włączona.

<PropertyGroup>
  <UseWPF>true</UseWPF>
</PropertyGroup>

Gdy ta właściwość jest ustawiona na true, projekty platformy .NET 5+ automatycznie zaimportuj zestaw .NET Desktop SDK.

EnableDefaultApplicationDefinition

Właściwość EnableDefaultApplicationDefinition określa, czy ApplicationDefinition elementy są niejawnie zawarte w projekcie. Domyślna wartość to true. Ustaw właściwość na EnableDefaultApplicationDefinition wartość false , aby wyłączyć niejawne dołączanie pliku.

<PropertyGroup>
  <EnableDefaultApplicationDefinition>false</EnableDefaultApplicationDefinition>
</PropertyGroup>

Ta właściwość wymaga ustawienia EnableDefaultItems właściwości na true, która jest ustawieniem domyślnym.

WłączDomyślnePageelementy

Właściwość EnableDefaultPageItems określa, czy Page elementy, które są plikami xaml , są niejawnie zawarte w projekcie. Domyślna wartość to true. Ustaw właściwość na EnableDefaultPageItems wartość false , aby wyłączyć niejawne dołączanie pliku.

<PropertyGroup>
  <EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>

Ta właściwość wymaga ustawienia EnableDefaultItems właściwości na true, która jest ustawieniem domyślnym.

Ustawienia formularzy systemu Windows

Aby uzyskać informacje o właściwościach projektu innego niż WinForms, zobacz Dokumentacja programu MSBuild dla projektów zestawu SDK platformy .NET.

ApplicationDefaultFont

Właściwość ApplicationDefaultFont określa niestandardowe informacje o czcionkach, które mają być stosowane dla całej aplikacji. Określa, czy interfejs API wygenerowany ApplicationConfiguration.Initialize() przez źródło emituje wywołanie Application.SetDefaultFont(Font) metody . Wartość domyślna jest pustym ciągiem i oznacza, że domyślna czcionka aplikacji pochodzi z Control.DefaultFont właściwości .

Wartość niepusta musi być zgodna z formatem równoważnym z danymi wyjściowymi FontConverter.ConvertTo metody wywoływanej ze niezmienną kulturą (czyli separatorem listy =, i separatorem dziesiętnym=.). Format: name, size[units[, style=style1[, style2, ...]]].

<PropertyGroup>
  <ApplicationDefaultFont>Calibri, 11pt, style=regular</ApplicationDefaultFont>
</PropertyGroup>

Ta właściwość jest obsługiwana przez platformę .NET 6 i nowsze wersje oraz program Visual Studio 2022 i nowsze wersje.

ApplicationHighDpiMode

Właściwość ApplicationHighDpiMode określa ustawienie domyślne dla całego aplikacji dla trybu wysokiej rozdzielczości DPI. Steruje argumentem Application.SetHighDpiMode(HighDpiMode) metody emitowanej przez interfejs API wygenerowany ApplicationConfiguration.Initialize() przez źródło. Domyślna wartość to SystemAware.

<PropertyGroup>
  <ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
</PropertyGroup>

ApplicationHighDpiMode Można ustawić na jedną z HighDpiMode wartości wyliczenia:

Wartość Opis
DpiUnaware Okno aplikacji nie jest skalowane pod kątem zmian DPI i zawsze zakłada współczynnik skalowania 100%.
DpiUnawareGdiScaled Podobnie jak w przypadku DpiUnawareelementu , ale poprawia jakość zawartości opartej na GDI/GDI+.
PerMonitor Okno sprawdza wartość DPI podczas jego tworzenia i dostosowuje współczynnik skalowania po zmianie dpi.
PerMonitorV2 Podobnie jak PerMonitorw systemie, ale włącza powiadomienie o zmianie dpi okna podrzędnego, ulepszone skalowanie kontrolek comctl32 i skalowanie okien dialogowych.
SystemAware Wartość domyślna , jeśli nie zostanie określona.
Okno wysyła zapytanie do dpi monitora podstawowego raz i używa tej wartości dla aplikacji na wszystkich monitorach.

Ta właściwość jest obsługiwana przez platformę .NET 6 i nowsze wersje.

ApplicationUseCompatibleTextRendering

Właściwość ApplicationUseCompatibleTextRendering określa wartość domyślną dla całej aplikacji dla właściwości zdefiniowanej UseCompatibleTextRendering w niektórych kontrolkach. Steruje argumentem Application.SetCompatibleTextRenderingDefault(Boolean) metody emitowanej przez interfejs API wygenerowany ApplicationConfiguration.Initialize() przez źródło. Domyślna wartość to false.

<PropertyGroup>
  <ApplicationUseCompatibleTextRendering>true</ApplicationUseCompatibleTextRendering>
</PropertyGroup>

Ta właściwość jest obsługiwana przez platformę .NET 6 i nowsze wersje.

ApplicationVisualStyles

Właściwość ApplicationVisualStyles określa domyślną wartość dla całej aplikacji na potrzeby włączania stylów wizualizacji. Określa, czy interfejs API wygenerowany ApplicationConfiguration.Initialize() przez źródło emituje wywołanie metody Application.EnableVisualStyles(). Domyślna wartość to true.

<PropertyGroup>
  <ApplicationVisualStyles>true</ApplicationVisualStyles>
</PropertyGroup>

Ta właściwość jest obsługiwana przez platformę .NET 6 i nowsze wersje.

Korzystanie z funkcjiWindowsForms

Właściwość UseWindowsForms określa, czy aplikacja została skompilowana w celu kierowania formularzy systemu Windows. Ta właściwość zmienia potok MSBuild w celu poprawnego przetwarzania projektu Windows Forms i powiązanych plików. Domyślna wartość to false. Ustaw właściwość na UseWindowsForms wartość , aby true włączyć obsługę formularzy systemu Windows. Jeśli to ustawienie jest włączone, można kierować tylko platformę systemu Windows.

<PropertyGroup>
  <UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>

Gdy ta właściwość jest ustawiona na true, projekty platformy .NET 5+ automatycznie zaimportuj zestaw .NET Desktop SDK.

Ustawienia udostępnione

DisableWinExeOutputInference

Dotyczy zestawu .NET 5 SDK i nowszych wersji.

Jeśli aplikacja ma ustawioną Exe wartość dla OutputType właściwości, zostanie utworzone okno konsoli, jeśli aplikacja nie jest uruchomiona z poziomu konsoli. Takie zachowanie nie jest zazwyczaj pożądane w przypadku aplikacji klasycznej systemu Windows. Przy użyciu WinExe wartości okno konsoli nie jest tworzone. Począwszy od zestawu .NET 5 SDK, Exe wartość jest automatycznie przekształcana na WinExe.

Właściwość DisableWinExeOutputInference przywraca zachowanie traktowania Exe jako WinExe. Ustaw tę wartość na wartość , aby true przywrócić zachowanie OutputType wartości Exewłaściwości . Domyślna wartość to false.

<PropertyGroup>
  <DisableWinExeOutputInference>true</DisableWinExeOutputInference>
</PropertyGroup>

Zobacz też