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.
Architektura podpory balíčků je opensourcová sada, která vám pomůže použít opravy pro stávající desktopovou aplikaci (bez úpravy kódu), aby bylo možné ji spustit v kontejneru MSIX. Architektura podpory balíčků pomáhá vaší aplikaci dodržovat osvědčené postupy moderního prostředí runtime.
Tento článek obsahuje podrobný přehled o jednotlivých komponentách architektury podpory balíčků a podrobném průvodci jeho používáním.
Vysvětlení toho, co je v rámci architektury podpory balíčků
Architektura podpory balíčků obsahuje spustitelný soubor, knihovnu DLL správce modulu runtime a sadu oprav modulu runtime.
Tady je proces:
- Vytvořte konfigurační soubor, který určuje opravy, které chcete použít pro vaši aplikaci.
- Upravte balíček tak, aby odkazoval na spustitelný soubor spouštěče Package Support Framework (PSF).
Když uživatelé spustí vaši aplikaci, spouštěč balíčku Support Framework je první spustitelný soubor, který se spustí. Přečte konfigurační soubor a vloží opravy modulu runtime a knihovnu DLL správce modulu runtime do procesu aplikace. Správce modulu runtime použije opravu v případě, že ji aplikace potřebuje ke spuštění uvnitř kontejneru MSIX.
Krok 1: Identifikace problémů s kompatibilitou zabalených aplikací
Nejprve vytvořte balíček pro vaši aplikaci. Pak ho nainstalujte, spusťte a sledujte jeho chování. Může se zobrazit chybová zpráva, která vám můžou pomoct identifikovat problém s kompatibilitou. K identifikaci problémů můžete použít také Sledování procesů . Běžné problémy se týkají předpokladů aplikace týkajících se pracovních adresářů a oprávnění k cestě programu.
Identifikace problému pomocí nástroje Process Monitor
Process Monitor je výkonný nástroj pro sledování operací souborů a registru aplikace a jejich výsledků. Pomůže vám to porozumět problémům s kompatibilitou aplikací. Po otevření nástroje Process Monitor přidejte filtr (Filtr > Filtr...), abyste zahrnuli pouze události ze spustitelného souboru aplikace.
Zobrazí se seznam událostí. U mnoha z těchto událostí se slovo SUCCESS zobrazí ve sloupci Výsledek .
Volitelně můžete filtrovat události tak, aby se zobrazovaly jenom chyby.
Pokud máte podezření na selhání přístupu k systému souborů, vyhledejte neúspěšné události, které jsou buď ve složce System32/SysWOW64, nebo na cestě k souboru balíčku. Tady vám můžou pomoct i filtry. Začněte v dolní části tohoto seznamu a posuňte se nahoru. K selháním, která se zobrazují v dolní části tohoto seznamu, došlo naposledy. Věnujte pozornost chybám, které obsahují řetězce, jako je "přístup odepřen", a "cesta/název se nenašly" a ignorujte věci, které nevypadají podezřele. PsFSample má dva problémy. Tyto problémy můžete zobrazit v seznamu, který se zobrazí na následujícím obrázku.
Prvním problémem, který je vidět na tomto obrázku, je to, že se aplikaci nedaří přečíst ze souboru "Config.txt", který se nachází v cestě "C:\Windows\SysWOW64". Je nepravděpodobné, že se aplikace pokouší na tuto cestu přímo odkazovat. S největší pravděpodobností se snaží číst z daného souboru pomocí relativní cesty a ve výchozím nastavení je "System32/SysWOW64" pracovním adresářem aplikace. To naznačuje, že aplikace očekává, že aktuální pracovní adresář bude nastavený někde v balíčku. Když se podíváme do souboru appx, vidíme, že soubor existuje ve stejném adresáři jako spustitelný soubor.
Druhý problém se zobrazí na následujícím obrázku.
V tomto problému se aplikaci nedaří napsat soubor .log do cesty k balíčku. To by naznačovalo, že může pomoct oprava přesměrování souboru.
Krok 2: Vyhledání opravy modulu runtime
PSF obsahuje opravy běhového prostředí, které teď můžete použít, například úprava přesměrování souborů.
Oprava přesměrování souborů
Opravu přesměrování souboru můžete použít k přesměrování pokusů o zápis nebo čtení dat v adresáři, který není přístupný z aplikace, která běží v kontejneru MSIX.
Pokud například vaše aplikace zapisuje do souboru protokolu, který je ve stejném adresáři jako spustitelný soubor aplikace, můžete pomocí opravy přesměrování souborů vytvořit tento soubor protokolu v jiném umístění, například v místním úložišti dat aplikace.
Opravy modulu runtime od komunity
Nezapomeňte si projít příspěvky komunity na naší stránce GitHubu . Je možné, že jiní vývojáři vyřešili problém podobný vašemu a sdíleli opravu modulu runtime.
Krok 3: Použití opravy modulu runtime
Existující opravu modulu runtime můžete použít pomocí několika jednoduchých nástrojů ze sady Windows SDK a pomocí těchto kroků.
- Vytvoření složky rozložení balíčku
- Získání souborů architektury podpory balíčků
- Přidejte je do balíčku.
- Úprava manifestu balíčku
- Vytvoření konfiguračního souboru
Pojďme si projít jednotlivé úkoly.
Vytvoření složky rozložení balíčku
Pokud už máte soubor .msix (nebo .appx), můžete jeho obsah rozbalit do složky rozložení, která bude sloužit jako pracovní oblast balíčku. Můžete to udělat z příkazového řádku pomocí nástroje MakeAppx na základě instalační cesty sady SDK, kde najdete nástroj makeappx.exe na počítači s Windows 10: x86: C:\Program Files (x86)\Windows Kits\10\bin\x86\makeappx.exe x64: C:\Program Files (x86)\Windows Kits\10\bin\x64\makeappx.exe
makeappx unpack /p PSFSamplePackage_1.0.60.0_AnyCPU_Debug.msix /d PackageContents
Tím získáte něco, co vypadá takto.
Pokud nemáte soubor .msix (nebo .appx), na který byste mohli začít, můžete vytvořit složku balíčku a soubory úplně od začátku.
Získání souborů architektury podpory balíčků
Balíček NUGet PSF můžete získat pomocí samostatného nástroje příkazového řádku NuGet nebo prostřednictvím sady Visual Studio.
Získání balíčku pomocí nástroje příkazového řádku
Nainstalujte nástroj příkazového řádku NuGet z tohoto umístění: https://www.nuget.org/downloads. Potom z příkazového řádku Nuget spusťte tento příkaz:
nuget install Microsoft.PackageSupportFramework
Případně můžete přejmenovat příponu balíčku na .zip a rozbalit ho. Všechny potřebné soubory budou ve složce /bin.
Získání balíčku pomocí sady Visual Studio
V sadě Visual Studio klikněte pravým tlačítkem na řešení nebo uzel projektu a vyberte jeden z příkazů Spravovat balíčky NuGet. Vyhledejte soubor Microsoft.PackageSupportFramework nebo PSF a vyhledejte ho na Nuget.org. Pak ho nainstalujte.
Přidání souborů architektury podpory balíčků do balíčku
Do adresáře balíčku přidejte požadované 32bitové a 64bitové knihovny PSF DLL a spustitelné soubory. Jako vodítko použijte následující tabulku. Budete také chtít zahrnout všechny potřebné opravy modulu runtime. V našem příkladu potřebujeme opravu přesměrování souborů v runtime.
| Spustitelný soubor aplikace je x64 | Spustitelný soubor aplikace je x86 |
|---|---|
| PSFLauncher64.exe | PSFLauncher32.exe |
| PSFRuntime64.dll | PSFRuntime32.dll |
| PSFRunDll64.exe | PSFRunDll32.exe |
Obsah balíčku by teď měl vypadat nějak takto.
Úprava manifestu balíčku
Otevřete manifest balíčku v textovém editoru a nastavte Executable atribut Application elementu na název spustitelného souboru PSF Launcher. Pokud znáte architekturu cílové aplikace, vyberte příslušnou verzi, PSFLauncher32.exe nebo PSFLauncher64.exe. Pokud ne, PSFLauncher32.exe bude fungovat ve všech případech. Tady je příklad.
<Package ...>
...
<Applications>
<Application Id="PSFSample"
Executable="PSFLauncher32.exe"
EntryPoint="Windows.FullTrustApplication">
...
</Application>
</Applications>
</Package>
Vytvoření konfiguračního souboru
Vytvořte název config.jsonsouboru a uložte ho do kořenové složky balíčku. Upravte deklarované ID aplikace souboru config.json tak, aby odkazoval na spustitelný soubor, který jste právě nahradili. Pomocí znalostí, které jste získali při používání nástroje Process Monitor, můžete nastavit pracovní adresář a pomocí opravy přesměrování souborů přesměrovat čtení a zápisy do souborů .log v adresáři "PSFSampleApp" relativním k balíčku.
{
"applications": [
{
"id": "PSFSample",
"executable": "PSFSampleApp/PSFSample.exe",
"workingDirectory": "PSFSampleApp/"
}
],
"processes": [
{
"executable": "PSFSample",
"fixups": [
{
"dll": "FileRedirectionFixup.dll",
"config": {
"redirectedPaths": {
"packageRelative": [
{
"base": "PSFSampleApp/",
"patterns": [
".*\\.log"
]
}
]
}
}
}
]
}
]
}
Následuje průvodce schématem config.json:
| Pole | klíč | Hodnota |
|---|---|---|
| aplikace | identifikační číslo | Použijte hodnotu Id atributu Application prvku v manifestu balíčku. |
| aplikace | spustitelný | Cesta v rámci balíčku vedoucí ke spustitelnému souboru, který chcete spustit. Ve většině případů můžete tuto hodnotu získat ze souboru manifestu balíčku, než ji upravíte. Je to hodnota Executable atributu elementu Application . |
| aplikace | pracovní adresář | (Volitelné) Cesta vzhledem k balíčku, která má být použita jako pracovní adresář aplikace, která se spustí. Pokud tuto hodnotu nenastavíte, operační systém použije System32 adresář jako pracovní adresář aplikace. |
| procesy | spustitelný | Ve většině případů je to název executable, nakonfigurovaný výše, ze kterého byla odstraněna cesta a přípona souboru. |
| Opravování chyb | knihovna dynamických odkazů (DLL) | Cesta vzhledem k balíčku k opravě, .msix/.appx k načtení. |
| Opravování chyb | konfig | (Volitelné) Určuje, jak se opravná knihovna DLL chová. Přesný formát této hodnoty se liší oprava po opravě, protože každá oprava může interpretovat tento datový blok podle potřeby. |
Klíče applications, processes a fixups jsou pole. To znamená, že můžete použít config.json soubor k určení více než jedné aplikace, procesu a opravy DLL.
Zabalení a otestování aplikace
Dále vytvořte balíček.
makeappx pack /d PackageContents /p PSFSamplePackageFixup.msix
Poté ho podepište.
signtool sign /a /v /fd sha256 /f ExportedSigningCertificate.pfx PSFSamplePackageFixup.msix
Další informace najdete v článku o tom, jak vytvořit podpisový certifikát balíčku a jak podepsat balíček pomocí nástroje signtool.
Pomocí PowerShellu nainstalujte balíček.
Poznámka:
Nezapomeňte nejprve odinstalovat balíček.
powershell Add-AppPackage .\PSFSamplePackageFixup.msix
Spusťte aplikaci a sledujte chování při použití opravy za běhu. Podle potřeby opakujte kroky diagnostiky a balení.
Zkontrolujte, jestli je spuštěná architektura podpory balíčků.
Můžete zkontrolovat, jestli je spuštěná oprava modulu runtime. Můžete to udělat tak, že otevřete Správce úloh a kliknete na Další podrobnosti. Vyhledejte aplikaci, na kterou byla použita architektura podpory balíčku, a rozbalte podrobnosti aplikace, abyste získali další podrobnosti. Měli byste být schopni zobrazit, že je spuštěný Package Support Framework.
Použijte opravu trasování
Alternativní technikou diagnostiky problémů s kompatibilitou zabalených aplikací je použití nástroje Trace Fixup. Tato knihovna DLL je součástí PSF a poskytuje podrobné diagnostické zobrazení chování aplikace, podobně jako sledování procesů. Je speciálně navržen tak, aby odhalil problémy s kompatibilitou aplikací. Chcete-li použít Trace Fixup, přidejte knihovnu DLL do balíčku, vložte následující část kódu do config.jsona poté zabalte a nainstalujte aplikaci.
{
"dll": "TraceFixup.dll",
"config": {
"traceLevels": {
"filesystem": "allFailures"
}
}
}
Ve výchozím nastavení služba Trace Fixup vyfiltruje chyby, které se můžou považovat za očekávané. Aplikace se například mohou pokusit nepodmíněně odstranit soubor bez kontroly, jestli už existuje, a výsledek ignorovat. To má nešťastný výsledek, že se některé neočekávané chyby můžou vyfiltrovat, takže v předchozím příkladu se rozhodneme přijímat všechna selhání z funkcí systému souborů. Děláme to proto, že víme, že se pokus o načtení ze souboru Config.txt nezdaří se zprávou "soubor nebyl nalezen". Jedná se o chybu, která se často pozoruje a obecně se nepředpokládá, že je neočekávaná. V praxi je vhodné začít filtrovat jenom na neočekávané chyby a pak se vrátit ke všem selháním, pokud dojde k problému, který stále nejde identifikovat.
Ve výchozím nastavení se výstup z nástroje Trace Fixup odešle do připojeného ladicího programu. V tomto příkladu nepřipojíme ladicí program a místo toho použijeme program DebugView z SysInternals k zobrazení jeho výstupu. Po spuštění aplikace můžeme vidět stejné chyby jako předtím, což by nás nasměrovalo na stejné opravy modulu runtime.
Ladění, rozšíření nebo vytvoření opravy za běhu
Visual Studio můžete použít k ladění opravy modulu runtime, rozšíření opravy modulu runtime nebo k vytvoření úplně od začátku. Abyste mohli být úspěšní, budete muset udělat tyto věci.
- Přidání projektu balení
- Přidání projektu pro opravu modulu runtime
- Přidejte projekt, který spouští spustitelný soubor PSF Launcher
- Konfigurace projektu balení
Až budete hotovi, vaše řešení bude vypadat nějak takto.
Pojďme se podívat na každý projekt v tomto příkladu.
| Projekt | Účel |
|---|---|
| Balíček desktopových aplikací | Tento projekt je založený na projektu Windows Application Packaging a vypíše balíček MSIX. |
| Oprava modulu runtime | Toto je projekt knihovny C++ Dynamic-Linked, který obsahuje jednu nebo více náhradních funkcí, které slouží jako oprava modulu runtime. |
| PSFLauncher | Toto je prázdný projekt C++. Tento projekt je místo pro shromáždění souborů distribuovatelných za běhu architektury podpory balíčků. Výstupem je spustitelný soubor. Tento spustitelný soubor je první věc, která se spustí při spuštění řešení. |
| WinFormsDesktopApplication | Tento projekt obsahuje zdrojový kód desktopové aplikace. |
Pokud se chcete podívat na kompletní ukázku, která obsahuje všechny tyto typy projektů, přečtěte si téma PSFSample.
Pojďme si projít postup vytvoření a konfigurace jednotlivých projektů ve vašem řešení.
Vytvoření řešení balíčku
Pokud ještě nemáte řešení pro svou desktopovou aplikaci, vytvořte nové prázdné řešení v sadě Visual Studio.
Můžete také přidat všechny projekty aplikací, které máte.
Přidání projektu balení
Pokud ještě nemáte projekt Windows Application Packaging, vytvořte ho a přidejte ho do svého řešení.
Další informace o projektu Windows Application Packaging naleznete v tématu Zabalení aplikace pomocí sady Visual Studio.
V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt balení, vyberte Upravit a pak ho přidejte do dolní části souboru projektu:
<Target Name="PSFRemoveSourceProject" AfterTargets="ExpandProjectReferences" BeforeTargets="_ConvertItems">
<ItemGroup>
<FilteredNonWapProjProjectOutput Include="@(_FilteredNonWapProjProjectOutput)">
<SourceProject Condition="'%(_FilteredNonWapProjProjectOutput.SourceProject)'=='<your runtime fix project name goes here>'" />
</FilteredNonWapProjProjectOutput>
<_FilteredNonWapProjProjectOutput Remove="@(_FilteredNonWapProjProjectOutput)" />
<_FilteredNonWapProjProjectOutput Include="@(FilteredNonWapProjProjectOutput)" />
</ItemGroup>
</Target>
Přidání projektu pro opravu modulu runtime
Do řešení přidejte projekt knihovny C++Dynamic-Link (DLL ).
Klikněte pravým tlačítkem myši na daný projekt a potom zvolte Vlastnosti.
Na stránkách vlastností vyhledejte pole Standard jazyka C++ a potom v rozevíracím seznamu vedle daného pole vyberte možnost ISO C++17 Standard (/std:c++17).
Klikněte pravým tlačítkem myši na tento projekt a potom v místní nabídce zvolte možnost Spravovat balíčky NuGet . Ujistěte se, že je možnost Zdroj balíčku nastavená na Možnost Vše nebo nuget.org.
Klikněte na ikonu nastavení vedle daného pole.
Vyhledejte balíček NuGet PSF* a pak ho nainstalujte pro tento projekt.
Pokud chcete ladit nebo rozšířit stávající opravu modulu runtime, přidejte soubory oprav modulu runtime, které jste získali pomocí pokynů popsaných v části Najít opravu modulu runtime tohoto průvodce.
Pokud máte v úmyslu vytvořit úplně novou opravu, nepřidávejte do tohoto projektu nic. Pomůžeme vám přidat správné soubory do tohoto projektu později v této příručce. Prozatím budeme pokračovat v nastavování vašeho řešení.
Přidejte projekt, který spouští spustitelný soubor PSF Launcher
Do řešení přidejte prázdný projekt C++.
Do tohoto projektu přidejte balíček PSF NuGet pomocí stejných pokynů popsaných v předchozí části.
Otevřete stránky vlastností projektu a na stránce Obecné nastavení nastavte vlastnost Target Name na PSFLauncher32PSFLauncher64 nebo v závislosti na architektuře aplikace.
Přidejte do svého řešení odkaz na projekt opravy modulu runtime.
Klikněte pravým tlačítkem myši na odkaz a potom v okně Vlastnosti použijte tyto hodnoty.
| Vlastnictví | Hodnota |
|---|---|
| Kopírovat lokálně | Pravdivé |
| Kopírování místních satelitních sestavení | Pravdivé |
| Výstup referenčního sestavení | Pravdivé |
| Závislosti knihovny odkazů | Nepravda |
| Propojení vstupů závislostí knihovny | Nepravda |
Konfigurace projektu balení
V projektu balení klikněte pravým tlačítkem myši na složku Aplikace a pak zvolte Přidat odkaz.
Zvolte projekt spouštěče PSF a projekt desktopové aplikace a pak zvolte tlačítko OK .
Poznámka:
Pokud ve své aplikaci nemáte zdrojový kód, stačí zvolit projekt PSF Launcher. Ukážeme vám, jak při vytváření konfiguračního souboru odkazovat na váš spustitelný soubor.
V uzlu Aplikace klikněte pravým tlačítkem myši na aplikaci PSF Launcher a pak zvolte Nastavit jako vstupní bod.
Přidejte do projektu balení soubor s názvem config.json , zkopírujte do souboru následující text JSON a vložte ho. Nastavte vlastnost Akce balíčku na obsah.
{
"applications": [
{
"id": "",
"executable": "",
"workingDirectory": ""
}
],
"processes": [
{
"executable": "",
"fixups": [
{
"dll": "",
"config": {
}
}
]
}
]
}
Zadejte hodnotu pro každý klíč. Tuto tabulku použijte jako vodítko.
| Pole | klíč | Hodnota |
|---|---|---|
| aplikace | identifikační číslo | Použijte hodnotu Id atributu Application prvku v manifestu balíčku. |
| aplikace | spustitelný | Cesta v rámci balíčku vedoucí ke spustitelnému souboru, který chcete spustit. Ve většině případů můžete tuto hodnotu získat ze souboru manifestu balíčku, než ji upravíte. Je to hodnota Executable atributu elementu Application . |
| aplikace | pracovní adresář | (Volitelné) Cesta vzhledem k balíčku, která má být použita jako pracovní adresář aplikace, která se spustí. Pokud tuto hodnotu nenastavíte, operační systém použije System32 adresář jako pracovní adresář aplikace. |
| procesy | spustitelný | Ve většině případů je to název executable, nakonfigurovaný výše, ze kterého byla odstraněna cesta a přípona souboru. |
| Opravování chyb | knihovna dynamických odkazů (DLL) | Relativní cesta balíčku k knihovně DLL oprav, která se má načíst. |
| Opravování chyb | konfig | (Volitelné) Určuje, jak se ovladač knihovny DLL pro opravy chová. Přesný formát této hodnoty se liší oprava po opravě, protože každá oprava může interpretovat tento datový blok podle potřeby. |
Až to budete mít, config.json soubor bude vypadat nějak takto.
{
"applications": [
{
"id": "DesktopApplication",
"executable": "DesktopApplication/WinFormsDesktopApplication.exe",
"workingDirectory": "WinFormsDesktopApplication"
}
],
"processes": [
{
"executable": ".*App.*",
"fixups": [ { "dll": "RuntimeFix.dll" } ]
}
]
}
Poznámka:
Klíče applications, processes a fixups jsou pole. To znamená, že můžete použít config.json soubor k určení více než jedné aplikace, procesu a opravy DLL.
Ladění opravy modulu runtime
Ve Visual Studio stiskněte klávesu F5 pro spuštění ladicího programu. První věc, která se spustí, je aplikace PSF Launcher, která zase spustí cílovou desktopovou aplikaci. Pokud chcete ladit cílovou desktopovou aplikaci, budete se muset ručně připojit k procesu desktopové aplikace tak, že zvolíte Ladění-Připojit k procesu> a pak vyberete proces aplikace. Pokud chcete povolit ladění aplikace .NET pomocí nativního DLL souboru s opravami pro běhové prostředí, vyberte spravovaný a nativní typ kódu (ladění smíšeného režimu).
Po nastavení tohoto nastavení můžete nastavit zarážky vedle řádků kódu v kódu desktopové aplikace a projektu opravy modulu runtime. Pokud ve své aplikaci zdrojový kód nemáte, budete moct nastavit zarážky jenom vedle řádků kódu v projektu opravy modulu runtime.
Vzhledem k tomu, že ladění F5 spustí aplikaci nasazením volných souborů z cesty ke složce rozložení balíčku místo instalace z balíčku .msix/.appx, složka rozložení obvykle nemá stejná omezení zabezpečení jako nainstalovaná složka balíčku. V důsledku toho nemusí být možné před použitím opravy modulu runtime reprodukovat chyby odepření přístupu k cestě k balíčku.
Chcete-li tento problém vyřešit, použijte nasazení balíčku .msix / .appx místo nasazení volných souborů F5. K vytvoření souboru balíčku .msix / .appx použijte nástroj MakeAppx ze sady Windows SDK, jak je popsáno výše. Nebo v sadě Visual Studio klikněte pravým tlačítkem na uzel projektu aplikace a vyberte Store –> Vytvořit balíčky aplikací.
Dalším problémem se sadou Visual Studio je, že nemá integrovanou podporu připojení k žádným podřízeným procesům spuštěným ladicím programem. To znesnadňuje ladění logiky ve spouštěcí cestě cílové aplikace, která musí být po spuštění ručně připojena pomocí sady Visual Studio.
Pokud chcete tento problém vyřešit, použijte ladicí program, který podporuje napojení na podřízený proces. Upozorňujeme, že obecně není možné k dané aplikaci připojit JIT ladicí program. Důvodem je to, že většina technik JIT zahrnuje spuštění ladicího programu místo cílové aplikace prostřednictvím klíče registru ImageFileExecutionOptions. Tím se porazí mechanismus objíždění používaný PSFLauncher.exe k vložení FixupRuntime.dll do cílové aplikace. WinDbg, který je součástí nástrojů ladění pro Windows a je získaný ze sady Windows SDK, podporuje připojení podřízeného procesu. Teď také podporuje přímé spuštění a ladění aplikace pro UPW.
Pokud chcete ladit spuštění cílové aplikace jako podřízeného procesu, spusťte WinDbg.
windbg.exe -plmPackage PSFSampleWithFixup_1.0.59.0_x86__7s220nvg1hg3m -plmApp PSFSample
Na příkazovém WinDbg řádku povolte ladění potomků a nastavte odpovídající zarážky.
.childdbg 1
g
(spusťte, dokud se cílová aplikace nespustí a nevstoupí do ladicího režimu).
sxe ld fixup.dll
g
(spouštějte, dokud se nenačte opravná DLL)
bp ...
Poznámka:
PLMDebug lze také použít k připojení ladicího programu k aplikaci při spuštění a je také součástí nástrojů ladění pro Windows. Použití je ale složitější než přímá podpora, kterou nyní poskytuje WinDbg.
Podpora
Máte otázky? Zeptejte se nás na konverzačním prostoru Package Support Framework na webu technické komunity MSIX.