MSBuild-referencia .NET Desktop SDK-projektekhez
Ez page az MSBuild tulajdonságok és elemek hivatkozása, amelyeket a Windows Forms (WinForms) és Windows megjelenítési alaprendszer (WPF) projektek .NET Desktop SDK-val való konfigurálásához használ.
Feljegyzés
Ez a cikk a .NET SDK MSBuild tulajdonságainak egy részét ismerteti az asztali alkalmazásokhoz kapcsolódóan. A .NET SDK-specifikus MSBuild-tulajdonságok listáját a .NET SDK-projektek MSBuild-referenciájában találja. A gyakori MSBuild tulajdonságok listáját lásd: Common MSBuild properties.
A .NET Desktop SDK engedélyezése
A WinForms vagy a WPF használatához adja meg a következő beállításokat a WinForms- vagy WPF-projekt projektfájljában:
- A .NET SDK
Microsoft.NET.Sdk
megcélzása. További információ: Project files. - Windows-specifikus cél-keretrendszer-monikerre van állítva
TargetFramework
, példáulnet8.0-windows
. - Adjon hozzá egy felhasználói felületi keretrendszertulajdonságot (vagy ha szükséges mindkettőt):
- A WPF importálására
true
és használatára van beállítvaUseWPF
. - Állítsa be
UseWindowsForms
atrue
WinForms importálására és használatára.
- A WPF importálására
- (Nem kötelező) Beállítás:
OutputType
WinExe
. Ez a beállítás egy alkalmazást hoz létre a tár helyett. Tár létrehozásához hagyja ki ezt a tulajdonságot.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<!-- and/or -->
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
A WPF alapértelmezett tartalma és kizárása
Az SDK-projektek olyan szabályokat határoznak meg, amelyekkel implicit módon belefoglalhatók vagy kizárhatók a fájlok a projektből. Ezek a szabályok automatikusan beállítják a fájl buildelési műveletét is. Ez a viselkedés ellentétben áll a régebbi, nem SDK-.NET-keretrendszer-projektekéval, amelyek alapértelmezés szerint nem tartalmaznak vagy zárnak ki szabályokat. .NET-keretrendszer projektekhez explicit módon deklarálnia kell, hogy mely fájlokat vegye fel a projektbe.
A .NET-projektfájlok szabványos szabálykészletet tartalmaznak a fájlok automatikus feldolgozásához. A WPF-projektek további szabályokat adnak hozzá.
Az alábbi táblázat azt mutatja be, hogy mely elemek és globok szerepelnek a .NET Desktop SDK-ban, ha a UseWPF
projekttulajdonság a következőre true
van állítva:
Elem | Glob belefoglalása | Glob kizárása | Glob eltávolítása |
---|---|---|---|
ApplicationDefinition | App.xaml vagy Application.xaml | N.A. | N.A. |
Page | **/*.xaml | **/*.felhasználó; **/*.*proj; **/*.sln; **/*.vssscc Minden XAML, amelyet ApplicationDefinition |
N.A. |
None | N.A. | N.A. | **/*.xaml |
Íme az összes projekttípus alapértelmezett belefoglalási és kizárási beállításai. További információkért lásd : Alapértelmezett tartalmazza és kizárja.
Elem | Glob belefoglalása | Glob kizárása | Glob eltávolítása |
---|---|---|---|
Compile | **/*.Cs; **/*.vb (vagy más nyelvi bővítmények) | **/*.felhasználó; **/*.*proj; **/*.sln; **/*.vssscc | n/a |
EmbeddedResource | **/*.resx | **/*.felhasználó; **/*.*proj; **/*.sln; **/*.vssscc | n/a |
None | **/* | **/*.felhasználó; **/*.*proj; **/*.sln; **/*.vssscc | **/*.Cs; **/*.resx |
A "duplikált" elemekhez kapcsolódó hibák
Ha kifejezetten hozzáadott fájlokat a projekthez, vagy XAML-beli globokkal automatikusan belefoglalja a fájlokat a projektbe, a következő hibák egyike jelenhet meg:
- A program ismétlődő ""ApplicationDefinition elemeket tartalmaz.
- A program ismétlődő ""Page elemeket tartalmaz.
Ezek a hibák az implicit Include globs és a beállítások ütközésének eredménye. A probléma megoldásához állítsa vagy állítsa be EnableDefaultApplicationDefinition
EnableDefaultPageItems
a következőt false
: . Ezeknek az értékeknek false
a beállítása visszaáll a korábbi SDK-k viselkedésére, ahol explicit módon meg kellett határoznia az alapértelmezett globokat vagy a projektbe belefoglalandó fájlokat.
A tulajdonság beállításával teljes mértékben letilthatja az EnableDefaultItems
összes implicit tulajdonságotfalse
.
WPF-beállítások
A nem WPF-specifikus projektbeállításokról további információt a .NET SDK-projektek MSBuild-referenciájában talál.
UseWPF
A UseWPF
tulajdonság azt szabályozza, hogy a WPF-kódtárakra mutató hivatkozásokat tartalmazzon-e. Ez a beállítás az MSBuild folyamatot is módosítja egy WPF-projekt és a kapcsolódó fájlok megfelelő feldolgozásához. Az alapértelmezett érték false
. Állítsa be a tulajdonságot UseWPF
a true
WPF-támogatás engedélyezéséhez. A Windows-platformot csak akkor célozhatja meg, ha ez a tulajdonság engedélyezve van.
<PropertyGroup>
<UseWPF>true</UseWPF>
</PropertyGroup>
Ha ez a tulajdonság be van állítva true
, a .NET-projektek automatikusan importálják a .NET Desktop SDK-t.
EnableDefaultApplicationDefinition
A EnableDefaultApplicationDefinition
tulajdonság azt szabályozza, hogy az elemek implicit módon szerepelnek-e ApplicationDefinition
a projektben. Az alapértelmezett érték true
. Állítsa be a tulajdonságot EnableDefaultApplicationDefinition
úgy, hogy false
letiltsa az implicit fájlbefoglalást.
<PropertyGroup>
<EnableDefaultApplicationDefinition>false</EnableDefaultApplicationDefinition>
</PropertyGroup>
Ehhez a tulajdonsághoz be kell állítani true
a EnableDefaultItems
tulajdonságot, amely az alapértelmezett beállítás.
EnableDefaultPageItems
A EnableDefaultPageItems
tulajdonság azt szabályozza, hogy az .xaml-fájlokat tartalmazó elemek implicit módon szerepelnek-e Page
a projektben. Az alapértelmezett érték true
. Állítsa be a tulajdonságot EnableDefaultPageItems
úgy, hogy false
letiltsa az implicit fájlbefoglalást.
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Ehhez a tulajdonsághoz be kell állítani true
a EnableDefaultItems
tulajdonságot, amely az alapértelmezett beállítás.
Windows Forms-beállítások
- ApplicationDefaultFont
- ApplicationHighDpiMode
- ApplicationUseCompatibleTextRendering
- ApplicationVisualStyles
- UseWindowsForms
A nem WinForms-specifikus projekttulajdonságokról további információt a .NET SDK-projektek MSBuild-referenciajában talál.
ApplicationDefaultFont
A ApplicationDefaultFont
tulajdonság az alkalmazásszintű alkalmazásra alkalmazandó egyéni betűtípus-információkat adja meg. Azt szabályozza, hogy a forrás által generált ApplicationConfiguration.Initialize()
API meghívja-e a metódust Application.SetDefaultFont(Font) .
Az alapértelmezett érték egy üres sztring, ami azt jelenti, hogy az alkalmazás alapértelmezett betűtípusa a Control.DefaultFont tulajdonságból származik.
A nem üres értékeknek meg kell felelniük az invariáns kultúrával meghívott metódus kimenetének FontConverter.ConvertTo
(azaz listaelválasztó=,
és decimális elválasztó=.
) kimenetének. A formátum a következő: name, size[units[, style=style1[, style2, ...]]]
.
<PropertyGroup>
<ApplicationDefaultFont>Calibri, 11pt, style=regular</ApplicationDefaultFont>
</PropertyGroup>
Ezt a tulajdonságot a .NET 6-os és újabb verziói, valamint a Visual Studio 2022 és újabb verziói támogatják.
ApplicationHighDpiMode
A ApplicationHighDpiMode
tulajdonság az alkalmazásszintű alapértelmezett értéket adja meg a magas DPI-módhoz. Ez szabályozza a forrás által létrehozott API által kibocsátott metódus argumentumát Application.SetHighDpiMode(HighDpiMode) ApplicationConfiguration.Initialize()
.
Az alapértelmezett érték SystemAware
.
<PropertyGroup>
<ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
</PropertyGroup>
Az ApplicationHighDpiMode
enumerálás értéke a HighDpiMode következő lehet:
Érték | Leírás |
---|---|
DpiUnaware |
Az alkalmazásablak nem méretezi a DPI-módosításokat, és mindig 100%-os méretezési tényezőt feltételez. |
DpiUnawareGdiScaled |
Hasonló, DpiUnaware de javítja a GDI/GDI+ alapú tartalmak minőségét. |
PerMonitor |
Az ablak a DPI létrehozását követően ellenőrzi a DPI-t, és módosítja a skálázási tényezőt, amikor a DPI megváltozik. |
PerMonitorV2 |
Hasonló, de lehetővé teszi a PerMonitor gyermekablak DPI változásértesítését, a comctl32 vezérlők továbbfejlesztett skálázását és a párbeszédpanelek skálázását. |
SystemAware |
Alapértelmezett , ha nincs megadva. Az ablak egyszer lekérdezi az elsődleges monitor DPI-ját, és ezt az értéket használja az alkalmazáshoz az összes monitoron. |
Ezt a tulajdonságot a .NET 6-os és újabb verziói támogatják.
ApplicationUseCompatibleTextRendering
A ApplicationUseCompatibleTextRendering
tulajdonság az alkalmazásszintű alapértelmezett értéket adja meg az UseCompatibleTextRendering
egyes vezérlőkön definiált tulajdonsághoz. Ez szabályozza a forrás által létrehozott API által kibocsátott metódus argumentumát Application.SetCompatibleTextRenderingDefault(Boolean) ApplicationConfiguration.Initialize()
.
Az alapértelmezett érték false
.
<PropertyGroup>
<ApplicationUseCompatibleTextRendering>true</ApplicationUseCompatibleTextRendering>
</PropertyGroup>
Ezt a tulajdonságot a .NET 6-os és újabb verziói támogatják.
ApplicationVisualStyles
A ApplicationVisualStyles
tulajdonság az alkalmazásszintű alapértelmezett értéket adja meg a vizuális stílusok engedélyezéséhez. Azt szabályozza, hogy a forrás által generált ApplicationConfiguration.Initialize()
API hívásokat Application.EnableVisualStyles()bocsát-e ki.
Az alapértelmezett érték true
.
<PropertyGroup>
<ApplicationVisualStyles>true</ApplicationVisualStyles>
</PropertyGroup>
Ezt a tulajdonságot a .NET 6-os és újabb verziói támogatják.
UseWindowsForms
A UseWindowsForms
tulajdonság azt szabályozza, hogy az alkalmazás a Windows Forms megcélzására készült-e. Ez a tulajdonság módosítja az MSBuild folyamatot egy Windows Forms-projekt és a kapcsolódó fájlok megfelelő feldolgozásához. Az alapértelmezett érték false
. Állítsa be a tulajdonságot UseWindowsForms
a true
Windows Forms támogatásának engedélyezéséhez. A Windows-platformot csak akkor célozhatja meg, ha ez a beállítás engedélyezve van.
<PropertyGroup>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
Ha ez a tulajdonság be van állítva true
, a .NET-projektek automatikusan importálják a .NET Desktop SDK-t.