.NET Masaüstü SDK projeleri için MSBuild başvurusu
Bu sayfa, .NET Masaüstü SDK'sı ile Windows Forms (WinForms) ve Windows Presentation Foundation (WPF) projelerini yapılandırmak için kullandığınız MSBuild özelliklerine ve öğelerine yönelik bir başvurudur.
Not
Bu makalede, masaüstü uygulamalarıyla ilgili olarak .NET SDK'sı için MSBuild özelliklerinin bir alt kümesi belgelemektedir. Yaygın .NET SDK'ya özgü MSBuild özelliklerinin listesi için bkz . .NET SDK projeleri için MSBuild başvurusu. Yaygın MSBuild özelliklerinin listesi için bkz . Ortak MSBuild özellikleri.
.NET Masaüstü SDK'sını etkinleştirme
WinForms veya WPF kullanmak için WinForms veya WPF projenizin proje dosyasında aşağıdaki ayarları belirtin:
- .NET SDK'sını
Microsoft.NET.Sdk
hedefle. Daha fazla bilgi için bkz . Proje dosyaları. - Gibi Windows'a özgü bir
TargetFramework
olarak ayarlayınnet8.0-windows
. - Ui framework özelliği (veya gerekirse her ikisini birden) ekleyin:
- WPF'yi
UseWPF
içeri aktarmak ve kullanmak için olarak ayarlayıntrue
. -
UseWindowsForms
WinForms'ı içeri aktarmak ve kullanmak için olarak ayarlayıntrue
.
- WPF'yi
- (İsteğe bağlı) olarak
OutputType
ayarlayınWinExe
. Bu ayar, kitaplığın aksine bir uygulama oluşturur. Kitaplık oluşturmak için bu özelliği atla.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<!-- and/or -->
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
WPF varsayılan olarak içerir ve dışlar
SDK projeleri, dosyaları örtük olarak dahil etmek veya projeden dışlamak için bir dizi kural tanımlar. Bu kurallar, dosyanın derleme eylemini de otomatik olarak ayarlar. Bu davranış, varsayılan ekleme veya dışlama kuralları olmayan SDK olmayan eski .NET Framework projelerinin aksinedir. .NET Framework projeleri, projeye eklenecek dosyaları açıkça bildirmenizi gerektirir.
.NET proje dosyaları, dosyaları otomatik olarak işlemek için standart bir kural kümesi içerir. WPF projeleri ek kurallar ekler.
Aşağıdaki tabloda, proje özelliği olarak ayarlandığında .NET Masaüstü SDK'sına UseWPF
dahil edilen ve dışlanan öğeler ve true
gösterilmektedir:
Öğe | Glob ekle | Glob'ı dışla | Glob kaldırma |
---|---|---|---|
ApplicationDefinition | App.xaml veya Application.xaml | Yok | Yok |
Page | **/*.xaml | **/*.kullanıcı; **/*.*proj; **/*.sln(x); **/*.vssscc Tarafından tanımlanan tüm XAML'ler ApplicationDefinition |
Yok |
None | Yok | Yok | **/*.xaml |
Tüm proje türleri için varsayılan ekleme ve dışlama ayarları aşağıdadır. Daha fazla bilgi için bkz . Varsayılan ekleme ve dışlamalar.
Öğe | Glob ekle | Glob'ı dışla | Glob kaldırma |
---|---|---|---|
Compile | **/*.bilgisayar bilimi; **/*.vb (veya diğer dil uzantıları) | **/*.kullanıcı; **/*.*proj; **/*.sln(x); **/*.vssscc | Yok |
EmbeddedResource | **/*.resx | **/*.kullanıcı; **/*.*proj; **/*.sln(x); **/*.vssscc | Yok |
None | **/* | **/*.kullanıcı; **/*.*proj; **/*.sln(x); **/*.vssscc | **/*.bilgisayar bilimi; **/*.resx |
"Yinelenen" öğelerle ilgili hatalar
Projenize açıkça dosya eklediyseniz veya projenize dosyaları otomatik olarak eklemek için XAML glob'larınız varsa, aşağıdaki hatalardan birini alabilirsiniz:
- Yinelenen 'ApplicationDefinition' öğeleri dahil edildi.
- Yinelenen 'Page' öğeleri dahil edildi.
Bu hatalar, ayarlarınızla çakışan örtük Ekleme glob'larının bir sonucu olarak ortaya çıkar. Bu soruna geçici bir çözüm bulmak için veya EnableDefaultApplicationDefinition
olarak EnableDefaultPageItems
ayarlayınfalse
. Bu değerlerin false
ayarlanması, varsayılan glob'ları veya projenize eklenecek dosyaları açıkça tanımlamanız gereken önceki SDK'ların davranışına geri döner.
özelliğiniEnableDefaultItems
olarak ayarlayarak tüm örtük eklemeleri false
tamamen devre dışı bırakabilirsiniz.
WPF ayarları
WPF'ye özgü olmayan proje ayarları hakkında bilgi için bkz . .NET SDK projeleri için MSBuild başvurusu.
UseWPF
özelliği WPF UseWPF
kitaplıklarına başvuru eklenip eklenmeyeceğini denetler. Bu ayar, BIR WPF projesini ve ilgili dosyaları doğru şekilde işlemek için MSBuild işlem hattını da değiştirir. Varsayılan değer şudur: false
.
UseWPF
WPF desteğini etkinleştirmek için özelliğini olarak true
ayarlayın. Windows platformunu yalnızca bu özellik etkinleştirildiğinde hedefleyebilirsiniz.
<PropertyGroup>
<UseWPF>true</UseWPF>
</PropertyGroup>
Bu özellik olarak true
ayarlandığında ,NET projeleri .NET Masaüstü SDK'sını otomatik olarak içeri aktarır.
EnableDefaultApplicationDefinition
özelliği, EnableDefaultApplicationDefinition
öğelerin projeye örtük olarak eklenip eklenmeyeceğini ApplicationDefinition
denetler. Varsayılan değer şudur: true
.
EnableDefaultApplicationDefinition
Örtük false
dosya eklemeyi devre dışı bırakmak için özelliğini olarak ayarlayın.
<PropertyGroup>
<EnableDefaultApplicationDefinition>false</EnableDefaultApplicationDefinition>
</PropertyGroup>
Bu özellik, özelliğin EnableDefaultItems
varsayılan ayar olan olarak true
ayarlanmasını gerektirir.
EnableDefaultPageItems
EnableDefaultPageItems
özelliği, .xamlPage
öğelerin projeye örtük olarak eklenip eklenmeyeceğini denetler. Varsayılan değer şudur: true
.
EnableDefaultPageItems
Örtük false
dosya eklemeyi devre dışı bırakmak için özelliğini olarak ayarlayın.
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Bu özellik, özelliğin EnableDefaultItems
varsayılan ayar olan olarak true
ayarlanmasını gerektirir.
Windows Forms ayarları
- ApplicationDefaultFont
- ApplicationHighDpiMode
- ApplicationUseCompatibleTextRendering
- ApplicationVisualStyles
- UseWindowsForms
WinForms'a özgü olmayan proje özellikleri hakkında bilgi için bkz . .NET SDK projeleri için MSBuild başvurusu.
ApplicationDefaultFont
ApplicationDefaultFont
özelliği, uygulama genelinde uygulanacak özel yazı tipi bilgilerini belirtir. Kaynak tarafından oluşturulan ApplicationConfiguration.Initialize()
API'nin yöntemine Application.SetDefaultFont(Font) bir çağrı yayıp yaymayacağını denetler.
Varsayılan değer boş bir dizedir ve uygulamanın varsayılan yazı tipinin özelliğinden Control.DefaultFont kaynaklanmış olduğu anlamına gelir.
Boş olmayan bir değer, sabit kültürleFontConverter.ConvertTo
çıkışına eşdeğer bir biçime uymalıdır. Biçim şu şekildedir: name, size[units[, style=style1[, style2, ...]]]
.
<PropertyGroup>
<ApplicationDefaultFont>Calibri, 11pt, style=regular</ApplicationDefaultFont>
</PropertyGroup>
Bu özellik .NET 6 ve sonraki sürümleri ile Visual Studio 2022 ve sonraki sürümleri tarafından desteklenir.
ApplicationHighDpiMode
özelliği, ApplicationHighDpiMode
yüksek DPI modu için uygulama genelindeki varsayılan değeri belirtir. Kaynak tarafından oluşturulan Application.SetHighDpiMode(HighDpiMode) API tarafından yayılan yöntemin bağımsız değişkenini ApplicationConfiguration.Initialize()
denetler.
Varsayılan değer şudur: SystemAware
.
<PropertyGroup>
<ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
</PropertyGroup>
ApplicationHighDpiMode
sabit listesi değerlerinden HighDpiMode birine ayarlanabilir:
Value | Açıklama |
---|---|
DpiUnaware |
Uygulama penceresi DPI değişiklikleri için ölçeklendirilmiyor ve her zaman %100 ölçek faktörü varsayılır. |
DpiUnawareGdiScaled |
gibi DpiUnaware , ancak GDI/GDI+ tabanlı içeriğin kalitesini artırır. |
PerMonitor |
Pencere oluşturulduğunda DPI'yi denetler ve DPI değiştiğinde ölçek faktörünü ayarlar. |
PerMonitorV2 |
gibi PerMonitor , ancak alt pencere DPI değişiklik bildirimini, comctl32 denetimlerinin geliştirilmiş ölçeklendirmesini ve iletişim kutusu ölçeklendirmesini etkinleştirir. |
SystemAware |
Belirtilmezse varsayılan . Pencere birincil izleyicinin DPI'sini bir kez sorgular ve tüm monitörlerde uygulama için bu değeri kullanır. |
Bu özellik .NET 6 ve sonraki sürümler tarafından desteklenir.
ApplicationUseCompatibleTextRendering
özelliği, ApplicationUseCompatibleTextRendering
belirli denetimlerde tanımlanan özellik için uygulama genelindeki UseCompatibleTextRendering
varsayılan değeri belirtir. Kaynak tarafından oluşturulan Application.SetCompatibleTextRenderingDefault(Boolean) API tarafından yayılan yöntemin bağımsız değişkenini ApplicationConfiguration.Initialize()
denetler.
Varsayılan değer şudur: false
.
<PropertyGroup>
<ApplicationUseCompatibleTextRendering>true</ApplicationUseCompatibleTextRendering>
</PropertyGroup>
Bu özellik .NET 6 ve sonraki sürümler tarafından desteklenir.
ApplicationVisualStyles
özelliği, ApplicationVisualStyles
görsel stilleri etkinleştirmek için uygulama genelindeki varsayılan değeri belirtir. Kaynak tarafından oluşturulan ApplicationConfiguration.Initialize()
API'nin öğesine bir çağrı Application.EnableVisualStyles()yayıp yaymayacağını denetler.
Varsayılan değer şudur: true
.
<PropertyGroup>
<ApplicationVisualStyles>true</ApplicationVisualStyles>
</PropertyGroup>
Bu özellik .NET 6 ve sonraki sürümler tarafından desteklenir.
UseWindowsForms
özelliği, uygulamanızın UseWindowsForms
Windows Forms'a hedef olacak şekilde derlenip derlenmediğini denetler. Bu özellik, Bir Windows Forms projesini ve ilgili dosyaları doğru şekilde işlemek için MSBuild işlem hattını değiştirir. Varsayılan değer şudur: false
.
UseWindowsForms
Windows Forms desteğini etkinleştirmek için özelliğini olarak true
ayarlayın. Windows platformunu yalnızca bu ayar etkinleştirildiğinde hedefleyebilirsiniz.
<PropertyGroup>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
Bu özellik olarak true
ayarlandığında ,NET projeleri .NET Masaüstü SDK'sını otomatik olarak içeri aktarır.