Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az UWP-alkalmazások és a hagyományos asztali alkalmazások közötti egyik fő különbség az, hogy az UWP-címek a Folyamat életciklus-kezelés (PLM) hatálya alá tartozó alkalmazástárolóban találhatók. Az UWP-alkalmazásokat a Runtime Broker szolgáltatás minden platformon felfüggesztheti, folytathatja vagy leállíthatja, és dedikált eszközökkel kényszerítheti ezeket az áttűnéseket az őket kezelő kód tesztelése vagy hibakeresése során.
A Visual Studio 2015 funkciói
A Visual Studio 2015 beépített hibakeresője segíthet az UWP-kizárólagos funkciók használatakor felmerülő lehetséges problémák kivizsgálásában. Az alkalmazás különböző PLM-állapotokra kényszeríthető az Életciklus Események eszköztár használatával, amely a cím futtatásakor és hibakeresésekor válik láthatóvá.
A PLMDebug eszköz
PLMDebug.exe egy parancssori eszköz, amely lehetővé teszi egy alkalmazáscsomag PLM-állapotának szabályozását, és a Windows SDK részeként lesz szállítva. A telepítés után az eszköz alapértelmezés szerint C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 található.
A PLMDebug lehetővé teszi a PLM letiltását minden telepített alkalmazáscsomag esetében, amely bizonyos hibakeresők számára szükséges. A PLM letiltása megakadályozza, hogy a Runtime Broker szolgáltatás leállítja az alkalmazást, mielőtt lehetősége lenne a hibakeresésre. A PLM letiltásához használja a /enableDebug kapcsolót, majd az UWP-alkalmazás teljes csomagnevét (a csomag rövid neve, a csomagcsalád neve vagy az AUMID nem fog működni):
plmdebug /enableDebug [PackageFullName]
Miután telepítette az UWP-alkalmazást a Visual Studióból, a teljes csomagnév megjelenik a kimeneti ablakban. Másik lehetőségként a teljes csomagnevet is lekérheti, ha Get-AppxPackage futtat egy PowerShell-konzolon.
futtatása
Megadhat egy abszolút elérési utat egy hibakeresőhöz, amely automatikusan elindul az alkalmazáscsomag aktiválásakor. Ha ezt a Visual Studióval szeretné elvégezni, meg kell adnia a VSJITDebugger.exe-t hibakereső eszközként. Azonban a VSJITDebugger.exe megköveteli, hogy megadja a "-p" kapcsolót, valamint az UWP alkalmazás folyamatazonosítóját (PID). Mivel az UWP-alkalmazás PID-jét nem lehet előre megismerni, ez a forgatókönyv alapértelmezés szerint nem lehetséges.
Ezt a korlátozást megkerülheti egy olyan szkript vagy eszköz írásával, amely azonosítja a játék folyamatát, és aztán a shell lefuttatja a VSJITDebugger.exe-t, átadva az UWP-alkalmazás PID-jét. Az alábbi C#-kódminta ennek egyszerű megközelítését mutatja be.
using System.Diagnostics;
namespace VSJITLauncher
{
class Program
{
static void Main(string[] args)
{
// Name of UWP process, which can be retrieved via Task Manager.
Process[] processes = Process.GetProcessesByName(args[0]);
// Get PID of most recent instance
// Note the highest PID is arbitrary. Windows may recycle or wrap the PID at any time.
int highestId = 0;
foreach (Process detectedProcess in processes)
{
if (detectedProcess.Id > highestId)
highestId = detectedProcess.Id;
}
// Launch VSJITDebugger.exe, which resides in C:\Windows\System32
ProcessStartInfo startInfo = new ProcessStartInfo("vsjitdebugger.exe", "-p " + highestId);
startInfo.UseShellExecute = true;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
}
}
}
Ennek használatára példa a PLMDebuggal együtt:
plmdebug /enableDebug 279f7062-ce35-40e8-a69f-cc22c08e0bb8_1.0.0.0_x86__c6sq6kwgxxfcg "\"C:\VSJITLauncher.exe\" Game"
ahol Game a folyamat neve, 279f7062-ce35-40e8-a69f-cc22c08e0bb8_1.0.0.0_x86__c6sq6kwgxxfcg pedig a példa UWP-alkalmazáscsomag teljes csomagneve.
Vegye figyelembe, hogy az /enableDebug hívását később egy másik PLMDebug-híváshoz kell kapcsolni a /disableDebug kapcsolóval. Ezenkívül a hibakereső elérési útjának abszolútnak kell lennie (a relatív elérési utak nem támogatottak).