CLI ile Windows için paketlenmemiş bir .NET MAUI uygulaması yayımlama
Windows için .NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI) uygulamanızı dağıtırken, uygulamayı ve bağımlılıklarını başka bir sisteme dağıtım için bir klasöre yayımlayabilirsiniz.
Proje derleme ayarlarını yapılandırma
Proje dosyanıza aşağıdaki <PropertyGroup>
düğümü ekleyin. Bu özellik grubu yalnızca hedef çerçeve Windows olduğunda ve yapılandırma olarak Release
ayarlandığında işlenir. Bu yapılandırma bölümü, bir derleme veya yayımlama modunda Release
her çalıştırıldığında çalışır.
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows' and '$(RuntimeIdentifierOverride)' != ''">
<RuntimeIdentifier>$(RuntimeIdentifierOverride)</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup>
Örnekteki, Windows Uygulama SDK'sı'ndaki bir hatayı geçici olarak çözmek için gereklidir. Hata hakkında daha fazla bilgi için bkz . WindowsAppSDK Sorunu #3337.
Yayımlama
Uygulamanızı yayımlamak için VS 2022 terminali için Geliştirici Komut İstemi'ni açın ve .NET MAUI uygulama projenizin klasörüne gidin. dotnet publish
Komutunu çalıştırarak aşağıdaki parametreleri sağlayın:
Parametre | Value |
---|---|
-f |
Hedef çerçeve olan net8.0-windows{version} . Bu değer, gibi net8.0-windows10.0.19041.0 bir Windows TFM'dir. Bu değerin .csproj dosyanızdaki düğümdeki <TargetFrameworks> değerle aynı olduğundan emin olun. |
-c |
Derleme yapılandırmasıdır Release . |
-p:RuntimeIdentifierOverride=win10-x64 - veya - -p:RuntimeIdentifierOverride=win10-x86 |
WindowsAppSDK Sorunu #3337'de ayrıntılı olarak açıklanan hatayı önler. -x64 Hedef platformunuza göre parametrenin veya -x86 sürümünü seçin. |
-p:WindowsPackageType |
Paketlenmemiş uygulamalar için olan None paket türü. |
-p:WindowsAppSDKSelfContained |
Uygulamanızın çerçeveye bağımlı veya bağımsız olabilecek dağıtım modu. Bu değer, bağımsız uygulamalar için olmalıdır true . Çerçeveye bağımlı uygulamalar ve bağımsız uygulamalar hakkında daha fazla bilgi için bkz . Windows Uygulama SDK'sı dağıtımına genel bakış. |
Uyarı
.NET MAUI çözümünü yayımlamaya çalışmak, komutun dotnet publish
çözümdeki her projeyi tek tek yayımlamaya çalışmasıyla sonuçlanır ve bu da çözümünüze başka proje türleri eklediğinizde sorunlara neden olabilir. Bu nedenle, komutun dotnet publish
kapsamı .NET MAUI uygulama projeniz olarak belirlenmiş olmalıdır.
Örneğin:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None
Not
.NET 8'de dotnet publish
komut varsayılan olarak yapılandırmaya sahiptir Release
. Bu nedenle, derleme yapılandırması komut satırından atlanabilir.
Yayımlama, yürütülebilir dosyayı bin\Release\net8.0-windows10.0.19041.0\win10-x64\publish klasörüne kopyalayarak uygulamayı derler. Bu klasörde bir exe dosyası ve bu da yerleşik uygulamadır. Bu uygulama başlatılabilir veya klasörün tamamı başka bir makineye kopyalanıp orada başlatılabilir.
Paketlenmiş bir uygulamadan önemli bir ayrım, klasöre .NET çalışma zamanının dahil olmayacağıdır. Bu, uygulamanın .NET çalışma zamanının sonunda uygulamayı çalıştıracak makinelere yüklenmesini gerektireceği anlamına gelir. Uygulamanın tüm çalışma zamanı bileşenlerini de içerdiğinden emin olmak için, bağımsız değişken yayımlanırken -p:WindowsAppSDKSelfContained
sağlanabilir. Örneğin:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None -p:WindowsAppSDKSelfContained=true
Komut hakkında dotnet publish
daha fazla bilgi için bkz . dotnet publish.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin