PSF (estrutura de suporte do pacote)Package Support Framework

O Package Support Framework é um kit de software livre que ajuda você a aplicar correções ao seu aplicativo Win32 quando você não tem acesso ao software livre, de modo que ele possa ser executado em um contêiner MSIX.The Package Support Framework is an open source kit that helps you apply fixes to your existing win32 application when you don't have access to the source code, so that it can run in an MSIX container. O Package Support Framework ajuda seu aplicativo a seguir as melhores práticas do ambiente moderno do tempo de execução.The Package Support Framework helps your application follow the best practices of the modern runtime environment.

Estes estão alguns exemplos comuns em que o Package Support Framework pode ser útil:Here are some common examples where you can find the Package Support Framework useful:

  • Quando iniciado, seu aplicativo não consegue localizar algumas DLLs.Your app can't find some DLLs when launched. Talvez você precise definir seu diretório de trabalho atual.You may need to set your current working directory. Você pode descobrir o diretório de trabalho atual necessário no atalho original, antes da conversão em MSIX.You can learn about the required current working directory in the original shortcut before you converted to MSIX.
  • O aplicativo faz gravações na pasta de instalação.The app writes into the install folder. Você normalmente percebe isso por causa de erros de "Acesso Negado" no Process Monitor.You will typically see it by "Access Denied" errors in Process Monitor.
  • Ao ser iniciado, seu aplicativo precisa passar parâmetros ao executável.Your app needs to pass parameters to the executable on launch. Você pode saber mais sobre como identificar esse problema aqui e sobre as configurações disponíveis aqui.You can learn more about how to identify this issue here and learn more about the available configurations here.

Para criar o Package Support Framework, aproveitamos a tecnologia Detours, que é uma estrutura de software livre desenvolvida pela MSR (Microsoft Research) e que ajuda com o redirecionamento de API e a vinculação.To create the Package Support Framework, we leveraged the Detours technology which is an open source framework developed by Microsoft Research (MSR) and helps with API redirection and hooking.

Essa estrutura é software livre, leve e você pode usá-la para solucionar problemas do aplicativo rapidamente.This framework is open source, lightweight, and you can use it to address application issues quickly. Ela também oferece a oportunidade de consultar a comunidade em todo o mundo e aproveitar os investimentos de outras pessoas.It also gives you the opportunity to consult with the community around the globe, and to build on top of the investments of others.

Para obter um guia passo a passo, confira Aplicar correções em tempo de execução em um pacote MSIX usando o Package Support Framework.For a step-by-step guide, see Apply runtime fixes to an MSIX package by using the Package Support Framework.

Uma visão rápida do Package Support FrameworkA quick look inside of the Package Support Framework

O Package Support Framework contém um executável, uma DLL do gerenciador de tempo de execução e um conjunto de correções em tempo de execução.The Package Support Framework contains an executable, a runtime manager DLL, and a set of runtime fixes.

PSF (estrutura de suporte do pacote)

Veja como funciona.Here's how it works. Você criará um arquivo de configuração que especifica as correções que deseja aplicar ao seu aplicativo.You'll create a configuration file that specifies the fixes that you want to apply to your application. Em seguida, você modificará o pacote para apontar para o arquivo executável do iniciador do PSF (Package Support Framework).Then, you'll modify your package to point to the Package Support Framework (PSF) launcher executable file.

Quando os usuários iniciarem seu aplicativo, o iniciador do Package Support Framework será o primeiro executável que será executado.When users start your application, the Package Support Framework launcher is the first executable that runs. Ele lê o arquivo de configuração e injeta as correções em tempo de execução e a DLL do gerenciador de tempo de execução no processo do aplicativo.It reads your configuration file and injects the runtime fixes and the runtime manager DLL into the application process. O gerenciador de tempo de execução aplica a correção quando ela é necessária para que o aplicativo seja executado em um contêiner MSIX.The runtime manager applies the fix when it's needed by the application to run inside of an MSIX container.

Injeção de DLL do Package Support Framework

Introdução ao uso do Package Support FrameworkGet started using the Package Support Framework

Depois de criar um pacote para seu aplicativo, instale e execute-o e observe seu comportamento.After you create a package for your application, install and run it, and observe its behavior. Você poderá receber mensagens de erro que podem ajudá-lo a identificar um problema de compatibilidade.You might receive error messages that can help you identify a compatibility issue. Use também o Monitor do Processo para identificar problemas.You can also use Process Monitor to identify issues.

Depois de encontrar um problema, confira nossa página do GitHub para obter uma correção.After you find an issue, you can check our GitHub page for a fix. Caso encontre uma, aplique-a ao seu pacote.If you find one, you can apply it to your package. Nosso guia passo a passo mostra como fazer isso.Our step-by-step guide shows you how to do this. Ele também mostrará como usar o depurador do Visual Studio para depurar seu aplicativo e verificar se a correção está funcionando e se ela resolveu o problema de compatibilidade.It will also show you how to use the Visual Studio debugger to step through your application and verify that the fix is working and that it has resolved the compatibility issue.

Caso não encontre uma correção de tempo de execução que resolva o problema, crie uma.If you can't find a runtime fix that addresses your issue, you can create one. Para fazer isso, você identificará quais chamadas de função falham quando seu aplicativo é executado em um contêiner MSIX.To do that, you'll identify which function calls fail when your application runs in an MSIX container. Em seguida, você poderá criar funções de substituição que você deseja que sejam chamadas pelo gerenciador de tempo de execução.Then, you can create replacement functions that you'd like the runtime manager to call instead. Isso oferecerá uma oportunidade de substituir a implementação de uma função por um comportamento que esteja de acordo com as regras do ambiente moderno do tempo de execução.This gives you an opportunity to replace the implementation of a function with behavior that conforms to the rules of the modern runtime environment.

Também é possível usar o Package Support Framework para executar scripts a fim de personalizar dinamicamente um aplicativo para o ambiente do usuário.You can also use the Package Support Framework to run scripts to customize an application for the user environment dynamically. Para obter mais informações, consulte este artigo.For more information, see this article.

LimitaçõesLimitations

O Package Support Framework não é compatível com as substituições do registro.The Package Support Framework does not support registry overrides. Ele foi criado para resolver problemas de tempo de execução.It is designed to resolve run time issues.

Dados e telemetriaData and telemetry

O Package Support Framework inclui a telemetria que coleta dados de uso e os envia para a Microsoft para ajudar a melhorar nossos produtos e serviços.The Package Support Framework includes telemetry that collects usage data and sends it to Microsoft to help improve our products and services. Leia a política de privacidade da Microsoft para saber mais.Read Microsoft's privacy statement to learn more. No entanto, os dados serão coletados somente quando as duas condições a seguir forem atendidas:However, data will be collected only when both of the following conditions are met:

  • Os binários do Package Support Framework são usados do pacote NuGet em um computador com Windows 10.The Package Support Framework binaries are used from the NuGet package on a Windows 10 computer.
  • O usuário habilitou a coleta de dados no computador.The user has enabled collection of data on the computer.

O pacote NuGet contém binários assinados e coletará dados de uso do computador.The NuGet package contains signed binaries and will collect usage data from the computer. A telemetria não é coletada quando os binários são criados localmente clonando o repositório ou baixando os binários diretamente.Telemetry is not collected when the binaries are built locally by cloning the repo or downloading the binaries directly.