Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.Sdkhedefle. Daha fazla bilgi için bkz . Proje dosyaları. - Gibi Windows'a özgü bir
TargetFrameworkolarak ayarlayınnet8.0-windows. - Ui framework özelliği (veya gerekirse her ikisini birden) ekleyin:
- WPF'yi
UseWPFiçeri aktarmak ve kullanmak için olarak ayarlayıntrue. -
UseWindowsFormsWinForms'ı içeri aktarmak ve kullanmak için olarak ayarlayıntrue.
- WPF'yi
- (İsteğe bağlı) olarak
OutputTypeayarlayı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 EnableDefaultPageItemsayarlayı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ğiniEnableDefaultItemsolarak 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 trueayarlandığı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 trueayarlanması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 trueayarlanması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 trueayarlandığında ,NET projeleri .NET Masaüstü SDK'sını otomatik olarak içeri aktarır.