Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Tato příručka funguje pro většinu typů .NET project. Tento postup jsme otestovali pomocí konzolových i uživatelských projektů, jako je WPF.
Tato příručka ukazuje, jak pomocí winapp CLI s .NET aplikací ladit aplikaci pomocí identity balíčku a zabalit aplikaci jako MSIX.
Identita balíčku je základním konceptem modelu Windows app. Umožňuje aplikaci přistupovat k konkrétním rozhraním API systému Windows (jako jsou oznámení, zabezpečení, rozhraní API AI atd.), má čistý proces instalace a odinstalace a další.
Předpoklady
.NET SDK: Nainstalujte sadu .NET SDK:
winget install Microsoft.DotNet.SDK.10 --source wingetwinapp CLI: Nainstalujte
winappnástroj přes winget:winget install Microsoft.winappcli --source winget
1. Vytvoření nové aplikace .NET
Začněte vytvořením jednoduché konzolové aplikace .NET:
dotnet new console -n dotnet-app
cd dotnet-app
Spusťte ho, abyste měli jistotu, že všechno funguje:
dotnet run
2. Aktualizace kódu pro kontrolu identity
Nejprve aktualizujte soubor project tak, aby cílil na konkrétní verzi sady Windows SDK. Otevřete dotnet-app.csproj a změňte TargetFramework.
<TargetFramework>net10.0-windows10.0.26100.0</TargetFramework>
Nyní nahraďte obsah :Program.cs
using Windows.ApplicationModel;
try
{
var package = Package.Current;
var familyName = package.Id.FamilyName;
Console.WriteLine($"Package Family Name: {familyName}");
}
catch (InvalidOperationException)
{
Console.WriteLine("Not packaged");
}
3. Spuštění bez identity
dotnet run
Měla by se zobrazit zpráva "Nenabalené".
4. Inicializace project pomocí rozhraní příkazového řádku winapp
Příkaz winapp init automaticky rozpozná soubory .csproj a spustí .NET specifické nastavení:
winapp init
Po zobrazení výzvy:
- Název balíčku: Stisknutím klávesy Enter přijměte výchozí nastavení.
- Publisher název: Stisknutím klávesy Enter přijměte výchozí hodnotu nebo zadejte své jméno.
- Popis: Stisknutím klávesy Enter přijměte výchozí hodnotu nebo zadejte popis.
- Verze: Stisknutím klávesy Enter přijměte verzi 1.0.0.0.
- Vstupní bod: Stisknutím klávesy Enter přijměte výchozí (dotnet-app.exe)
- nastavení Windows App SDK: Vyberte stabilní, preview nebo experimentální.
Tento příkaz:
- Aktualizuje vaši
TargetFrameworkverzi.csprojna podporovanou sadu Windows TFM (v případě potřeby). - Přidá odkazy na balíčky NuGet
Microsoft.WindowsAppSDKaMicrosoft.Windows.SDK.BuildTools - Vytvořte složky
appxmanifest.xmlaAssetspro identitu vaší aplikace
Poznámka:
Na rozdíl od nativních projektů nebo projektů C++ tok .NET nevytváří soubor winapp.yaml. Balíčky NuGet se spravují přímo prostřednictvím vašeho .csproj. Slouží dotnet restore k obnovení balíčků po klonování.
5. Ladění s identitou
Sestavení spustitelného souboru:
dotnet build -c DebugPoužít identitu ladění:
winapp create-debug-identity .\bin\Debug\net10.0-windows10.0.26100.0\dotnet-app.exeSpusťte spustitelný soubor (nepoužívejte
dotnet runpokud by to mohlo vyvolat opětovné sestavení):.\bin\Debug\net10.0-windows10.0.26100.0\dotnet-app.exe
Měli byste vidět:
Package Family Name: dotnet-app_12345abcde
Automatizace identity ladění (volitelné)
Přidejte tento cíl do .csproj souboru:
<Target Name="ApplyDebugIdentity" AfterTargets="Build" Condition="'$(Configuration)' == 'Debug'">
<Exec Command="winapp create-debug-identity "$(TargetDir)$(TargetName).exe""
WorkingDirectory="$(ProjectDir)"
IgnoreExitCode="false" />
</Target>
6. Použití Windows App SDK
Pokud jste spustili winapp init, Microsoft.WindowsAppSDK už byl přidán jako odkaz na balíček NuGet. Aktualizujte Program.cs tak, aby používalo rozhraní API Windows App Runtime:
using Windows.ApplicationModel;
class Program
{
static void Main(string[] args)
{
try
{
var package = Package.Current;
var familyName = package.Id.FamilyName;
Console.WriteLine($"Package Family Name: {familyName}");
var runtimeVersion = Microsoft.Windows.ApplicationModel.WindowsAppRuntime.RuntimeInfo.AsString;
Console.WriteLine($"Windows App Runtime Version: {runtimeVersion}");
}
catch (InvalidOperationException)
{
Console.WriteLine("Not packaged");
}
}
}
7. Balíček s MSIX
Sestavení pro vydání:
dotnet build -c ReleaseVygenerování vývojového certifikátu:
winapp cert generate --if-exists skipBalíček a podepsání:
winapp pack .\bin\Release\net10.0-windows10.0.26100.0 --manifest .\appxmanifest.xml --cert .\devcert.pfxNainstalujte certifikát (spusťte ho jako správce):
winapp cert install .\devcert.pfxNainstalujte poklikáním na vygenerovaný
.msixsoubor.
Návod
- Microsoft Store za vás podepíše MSIX, před odesláním se nemusíte podepisovat.
- Pro každou architekturu možná budete potřebovat samostatné balíčky MSIX:
dotnet build -c Release -r win-x64nebodotnet build -c Release -r win-arm64.
Automatizace balení MSIX (volitelné)
Přidejte tento cíl do svého .csproj:
<Target Name="PackageMsix" AfterTargets="Build" Condition="'$(Configuration)' == 'Release'">
<Exec Command="winapp pack "$(TargetDir.TrimEnd('\'))" --cert "$(ProjectDir)devcert.pfx""
WorkingDirectory="$(ProjectDir)"
IgnoreExitCode="false" />
</Target>
Příbuzná témata
Windows developer