Distribuição de um componente do Tempo de Execução do Windows gerenciadoDistributing a managed Windows Runtime Component

É possível distribuir o componente do Tempo de Execução do Windows por cópia de arquivo.You can distribute your Windows Runtime Component by file copy. No entanto, caso o componente consista em muitos arquivos, a instalação pode ser entediante para os usuários.However, if your component consists of many files, installation can be tedious for your users. Além disso, erros na colocação de arquivos ou falha na definição de referências podem causar problemas para eles.Also, errors in placing files or failure to set references might cause problems for them. É possível empacotar um componente complexo como um SDK de extensão do Visual Studio para facilitar a instalação e o uso.You can package a complex component as a Visual Studio extension SDK, to make it easy to install and use. Os usuários só precisam definir uma referência para todo o pacote.Users only need to set one reference for the entire package. Eles podem facilmente localizar e instalar seu componente usando a caixa de diálogo extensões e atualizações , conforme descrito em localizando e usando extensões do Visual Studio.They can easily locate and install your component by using the Extensions and Updates dialog box, as described in Finding and Using Visual Studio Extensions.

Planejamento de um componente do Tempo de Execução do Windows distribuívelPlanning a distributable Windows Runtime Component

Escolha nomes exclusivos para arquivos binários, como os arquivos .winmd.Choose unique names for binary files, such as your .winmd files. Recomendamos o seguinte formato para garantir a exclusividade:We recommend the following format to ensure uniqueness:

company.product.purpose.extension
For example: Microsoft.Cpp.Build.dll

Os arquivos binários serão instalados em pacotes dos aplicativos, possivelmente com arquivos binários de outros desenvolvedores.Your binary files will be installed in app packages, possibly with binary files from other developers. Consulte "SDKs de extensão" em como: criar um kit de desenvolvimento de software.See "Extension SDKs" in How to: Create a Software Development Kit.

Para decidir como distribuir o componente, leve em consideração como ele é complexo.To decide how to distribute your component, consider how complex it is. Um SDK de extensão ou gerenciador de pacotes semelhante é recomendado quando:An extension SDK or similar package manager is recommended when:

  • O componente consiste em vários arquivos.Your component consists of multiple files.
  • Você fornece versões do componente para várias plataformas (x86 e ARM, por exemplo).You provide versions of your component for multiple platforms (x86 and ARM, for example).
  • Você fornece versões de depuração e versão do componente.You provide both debug and release versions of your component.
  • O componente tem arquivos e assemblies usados somente em tempo de design.Your component has files and assemblies that are used only at design time.

Um SDK de extensão é especialmente útil caso mais de uma das opções acima seja verdadeira.An extension SDK is particularly useful if more than one of the above are true.

Observação    Para componentes complexos, o sistema de gerenciamento de pacotes NuGet oferece uma alternativa de código aberto para SDKs de extensão.Note  For complex components, the NuGet package management system offers an open source alternative to extension SDKs. Assim como os SDKs de extensão, NuGet permite criar pacotes que simplificam a instalação de componentes complexos.Like extension SDKs, NuGet enables you to create packages that simplify the installation of complex components. Para obter uma comparação de pacotes NuGet e SDKs de extensão do Visual Studio, consulte adicionando referências usando o NuGet em vez de um SDK de extensão.For a comparison of NuGet packages and Visual Studio extension SDKs, see Adding References Using NuGet Versus an Extension SDK.

Distribuição por cópia do arquivoDistribution by file copy

Caso o componente consista em um único arquivo .winmd ou em um arquivo .winmd e um arquivo de índice de recurso (.pri), basta disponibilizar o arquivo .winmd para os usuários copiarem.If your component consists of a single .winmd file, or a .winmd file and a resource index (.pri) file, you can simply make the .winmd file available for users to copy. Os usuários podem colocar o arquivo onde quiserem em um projeto, usar a caixa de diálogo Adicionar Item Existente para adicionar o arquivo .winmd ao projeto e usar a caixa de diálogo do Gerenciador de Referências para criar uma referência.Users can put the file wherever they want to in a project, use the Add Existing Item dialog box to add the .winmd file to the project, and then use the Reference Manager dialog box to create a reference. Caso você inclua um arquivo .pri ou um arquivo .xml, instrua os usuários a colocarem esses arquivos com o arquivo .winmd.If you include a .pri file or an .xml file, instruct users to place those files with the .winmd file.

Observação    O Visual Studio sempre produz um arquivo. pri quando você cria seu componente de Windows Runtime, mesmo que seu projeto não inclua nenhum recurso.Note  Visual Studio always produces a .pri file when you build your Windows Runtime Component, even if your project doesn't include any resources. Se você tiver um aplicativo de teste para seu componente, poderá determinar se o arquivo. pri é usado examinando o conteúdo do pacote do aplicativo na \ pasta Appx de depuração do compartimento \ .If you have a test app for your component, you can determine whether the .pri file is used by examining the contents of the app package in the bin\debug\AppX folder. Caso o arquivo .pri no componente não seja exibido, você não precisa distribuí-lo.If the .pri file from your component doesn't appear there, you don't need to distribute it. Também é possível usar a ferramenta MakePRI.exe para despejar o arquivo de recurso do projeto do componente do Tempo de Execução do Windows.Alternatively, you can use the MakePRI.exe tool to dump the resource file from your Windows Runtime Component project. Por exemplo, na janela Prompt de Comando do Visual Studio, digite: makepri dump /if MyComponent.pri /of MyComponent.pri.xml É possível saber mais sobre arquivos .pri em Sistema de Gerenciamento de Recursos (Windows).For example, in the Visual Studio Command Prompt window, type: makepri dump /if MyComponent.pri /of MyComponent.pri.xml You can read more about .pri files in Resource Management System (Windows).

Distribuição pelo SDK de extensãoDistribution by extension SDK

Um componente complexo normalmente inclui recursos do Windows, mas consulte a observação sobre como detectar arquivos .pri vazios na seção anterior.A complex component usually includes Windows resources, but see the note about detecting empty .pri files in the previous section.

Para criar um SDK de extensãoTo create an extension SDK

  1. Assegure-se de que você tenha o SDK do Visual Studio instalado.Make sure you have the Visual Studio SDK installed. É possível baixar o SDK do Visual Studio na página Downloads do Visual Studio.You can download the Visual Studio SDK from the Visual Studio Downloads page.

  2. Crie um novo projeto usando o modelo de projeto VSIX.Create a new project using the VSIX Project template. É possível encontrar o modelo em Visual C# ou Visual Basic, na categoria de extensibilidade.You can find the template under Visual C# or Visual Basic, in the Extensibility category. Esse modelo é instalado como parte do SDK do Visual Studio.This template is installed as part of the Visual Studio SDK. (Procedimento passo a passo: criação de um SDK em C# ou Visual Basic ou Procedimento passo a passo: criação de um SDK usando C++ demonstra o uso desse modelo em um cenário muito simples.(Walkthrough: Creating an SDK using C# or Visual Basic or Walkthrough: Creating an SDK using C++, demonstrates the use of this template in a very simple scenario. ))

  3. Determine a estrutura de pastas do SDK.Determine the folder structure for your SDK. A estrutura de pastas começa no nível raiz do projeto VSIX, com as pastas References, Redist e DesignTime.The folder structure begins at the root level of your VSIX project, with the References, Redist, and DesignTime folders.

    • References é o local para arquivos binários que os usuários podem programar.References is the location for binary files that your users can program against. O SDK de extensão cria referências para esses arquivos em projetos do Visual Studio dos usuários.The extension SDK creates references to these files in your users' Visual Studio projects.
    • Redist é o local para outros arquivos que devem ser distribuídos com os arquivos binários, em aplicativos criados usando o componente.Redist is the location for other files that must be distributed with your binary files, in apps that are created by using your component.
    • DesignTime é o local para os arquivos que só são usados quando os desenvolvedores estão criando aplicativos que usam o componente.DesignTime is the location for files that are used only when developers are creating apps that use your component.

    Em cada uma dessas pastas, é possível criar pastas de configuração.In each of these folders, you can create configuration folders. Os nomes permitidos são debug, retail e CommonConfiguration.The permitted names are debug, retail, and CommonConfiguration. A pasta CommonConfiguration se destina a arquivos que sejam iguais, independentemente de serem usados por compilações de varejo ou depuração.The CommonConfiguration folder is for files that are the same whether they're used by retail or debug builds. Caso só esteja distribuindo compilações de varejo do componente, você pode colocar tudo em CommonConfiguration e omitir as outras duas pastas.If you're only distributing retail builds of your component, you can put everything in CommonConfiguration and omit the other two folders.

    Em cada pasta de configuração, é possível fornecer pastas de arquitetura para arquivos específicos da plataforma.In each configuration folder, you can provide architecture folders for platform-specific files. Caso use os mesmos arquivos para todas as plataformas, você pode fornecer uma única pasta chamada neutral.If you use the same files for all platforms, you can supply a single folder named neutral. Você pode encontrar detalhes da estrutura de pastas, incluindo outros nomes de pastas de arquitetura, em como: criar um kit de desenvolvimento de software.You can find details of the folder structure, including other architecture folder names, in How to: Create a Software Development Kit. (Este artigo aborda SDKs de plataforma e SDKs de extensão.(That article discusses both platform SDKs and extension SDKs. Talvez seja útil recolher a seção sobre SDKs de plataforma, para evitar confusão.You may find it useful to collapse the section about platform SDKs, to avoid confusion. ))

  4. Crie um arquivo de manifesto do SDK.Create an SDK manifest file. O manifesto especifica informações de nome e versão, as arquiteturas com suporte do SDK, versões do .NET e outras informações sobre a maneira como o Visual Studio usa o SDK.The manifest specifies name and version information, the architectures your SDK supports, .NET versions, and other information about the way Visual Studio uses your SDK. É possível encontrar detalhes e um exemplo em Como criar um Software Development Kit.You can find details and an example in How to: Create a Software Development Kit.

  5. Compile e distribua o SDK de extensão.Build and distribute the extension SDK. Para obter informações detalhadas, incluindo a localização e a assinatura do pacote VSIX, consulte implantação do VSIX.For in-depth information, including localizing and signing the VSIX package, see VSIX Deployment.