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.
UWP uygulamalarıyla geleneksel masaüstü uygulamaları arasındaki temel farklardan biri, UWP başlıklarının İşlem Yaşam Döngüsü Yönetimi'ne (PLM) tabi bir uygulama kapsayıcısında bulunmasıdır. UWP uygulamaları, tüm platformlarda Çalışma Zamanı Aracısı hizmeti tarafından askıya alınabilir, yeniden başlatılabilir veya sonlandırılabilir. Bu işlemleri yapan kodu test ederken veya hata ayıklarken geçişleri zorlamak için kullanabileceğiniz özel araçlar mevcuttur.
Visual Studio 2015'teki özellikler
Visual Studio 2015'teki yerleşik hata ayıklayıcısı, UWP'ye özel özellikleri kullanırken olası sorunları araştırmanıza yardımcı olabilir. Başlığınızı çalıştırıp hata ayıkladığınızda görünür hale gelen Yaşam Döngüsü Olayları araç çubuğunu kullanarak uygulamanızı farklı PLM durumlarına zorlayabilirsiniz.
PLMDebug aracı
PLMDebug.exe, bir uygulama paketinin PLM durumunu denetlemenize olanak tanıyan ve Windows SDK'sının bir parçası olarak gönderilen bir komut satırı aracıdır. Yüklendikten sonra araç varsayılan olarak C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 konumunda bulunur.
PLMDebug, bazı hata ayıklayıcılar için gerekli olan yüklü herhangi bir uygulama paketi için PLM'yi devre dışı bırakmanıza da olanak tanır. PLM'yi devre dışı bırakmak, hata ayıklama fırsatınız olmadan önce Çalışma Zamanı Aracısı hizmetinin uygulamanızı sonlandırmasını engeller. PLM'yi devre dışı bırakmak için /enableDebug anahtarını ve ardından UWP uygulamanızın tam paket adı kullanın (paketin kısa adı, paket ailesi adı veya AUMID değeri çalışmaz):
plmdebug /enableDebug [PackageFullName]
UWP uygulamanızı Visual Studio'dan dağıttığınızda, çıkış penceresinde tam paket adı görüntülenir. Alternatif olarak, bir PowerShell konsolunda Get-AppxPackage
Çalıştırmayı
İsteğe bağlı olarak, uygulama paketiniz etkinleştirildiğinde otomatik olarak başlatılacak bir hata ayıklayıcının mutlak yolunu belirtebilirsiniz. Bunu Visual Studio kullanarak yapmak istiyorsanız, hata ayıklayıcısı olarak VSJITDebugger.exe belirtmeniz gerekir. Ancak, VSJITDebugger.exe UWP uygulamasının işlem kimliği (PID) ile birlikte "-p" anahtarını belirtmenizi gerektirir. UWP uygulamanızın PID'sini önceden bilmeniz mümkün olmadığından, bu senaryo kutudan çıkarılamaz.
Bu sınırlamayı, oyununuzun işlemini tanımlayan bir betik veya araç yazarak ve ardından kabuğun VSJITDebugger.exeçalıştırarak, UWP uygulamanızın PID'sini geçirerek aşabilirsiniz. Aşağıdaki C# kod örneği, bunu gerçekleştirmek için basit bir yaklaşımı göstermektedir.
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();
}
}
}
PLMDebug ile birlikte bunun örnek kullanımı:
plmdebug /enableDebug 279f7062-ce35-40e8-a69f-cc22c08e0bb8_1.0.0.0_x86__c6sq6kwgxxfcg "\"C:\VSJITLauncher.exe\" Game"
burada Game işlem adıdır ve 279f7062-ce35-40e8-a69f-cc22c08e0bb8_1.0.0.0_x86__c6sq6kwgxxfcg örnek UWP uygulama paketinin tam paket adıdır.
Her /enableDebug çağrısının daha sonra /disableDebug anahtarıyla bir PLMDebug çağrısıyla eşleştirilmesi gerektiğini unutmayın. Ayrıca, hata ayıklayıcının yolu mutlak olmalıdır (göreli yollar desteklenmez).
İlgili konular
- UWP uygulamalarını dağıtma ve hata ayıklama
- hata ayıklama, test etme ve performans