Dokumentacja programu MSBuild dla projektów zestawu .NET Desktop SDK
Jest to page odwołanie 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ładnet8.0-windows
. - Dodaj właściwość struktury interfejsu użytkownika (lub obie, jeśli to konieczne):
- Ustaw
UseWPF
wartość na wartość , abytrue
zaimportować i użyć platformy WPF. - Ustaw
UseWindowsForms
wartość na wartość , abytrue
zaimportować i użyć formularzy WinForms.
- Ustaw
- (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żytkownik; **/*.*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żytkownik; **/*.*proj; **/*.sln; **/*.vssscc | Nie dotyczy |
EmbeddedResource | **/*.resx | **/*.użytkownik; **/*.*proj; **/*.sln; **/*.vssscc | Nie dotyczy |
None | **/* | **/*.użytkownik; **/*.*proj; **/*.sln; **/*.vssscc | **/*.Cs; **/*.resx |
Błędy związane z elementami "zduplikowanymi"
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 automatycznie importuje 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.
EnableDefaultPageItems
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
- ApplicationDefaultFont
- ApplicationHighDpiMode
- ApplicationUseCompatibleTextRendering
- ApplicationVisualStyles
- Korzystanie z funkcjiWindowsForms
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 DpiUnaware elementu , 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 PerMonitor w 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 automatycznie importuje zestaw .NET Desktop SDK.