Distribuzione di un componente Windows Runtime gestitoDistributing a managed Windows Runtime Component

Puoi distribuire un componente Windows Runtime tramite copia dei file.You can distribute your Windows Runtime Component by file copy. Se tuttavia il componente è costituito da numerosi file, l'installazione può risultare noiosa per gli utenti.However, if your component consists of many files, installation can be tedious for your users. Errori nel posizionare o nell'impostare i riferimenti possono inoltre causare problemi.Also, errors in placing files or failure to set references might cause problems for them. Puoi creare un pacchetto di un componente complesso come SDK di estensione di Visual Studio, per semplificare l'installazione e l'uso.You can package a complex component as a Visual Studio extension SDK, to make it easy to install and use. Gli utenti devono solo impostare un riferimento per l'intero pacchetto.Users only need to set one reference for the entire package. Possono individuare e installare facilmente il componente usando la finestra di dialogo estensioni e aggiornamenti , come descritto in ricerca e uso delle estensioni di 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.

Pianificazione di un componente Windows Runtime distribuibilePlanning a distributable Windows Runtime Component

Scegli nomi univoci per i file binari, ad esempio i file con estensione winmd.Choose unique names for binary files, such as your .winmd files. Per garantire l'univocità, ti consigliamo di usare il formato seguente:We recommend the following format to ensure uniqueness:

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

I file binari verranno installati in pacchetti delle app, talvolta insieme ai file binari di altri sviluppatori.Your binary files will be installed in app packages, possibly with binary files from other developers. Vedere "SDK di estensione" in procedura: creare un Software Development Kit.See "Extension SDKs" in How to: Create a Software Development Kit.

Per decidere come distribuire il componente, valutane la complessità.To decide how to distribute your component, consider how complex it is. Un SDK di estensione o uno strumento di gestione pacchetti simile è consigliabile quando:An extension SDK or similar package manager is recommended when:

  • Il componente è costituito da più file.Your component consists of multiple files.
  • Fornisci versioni del componente per diverse piattaforme (ad esempio x86 e ARM).You provide versions of your component for multiple platforms (x86 and ARM, for example).
  • Fornisci sia la versione di debug sia quella finale del componente.You provide both debug and release versions of your component.
  • Il componente include file e assembly usati solo in fase di progettazione.Your component has files and assemblies that are used only at design time.

Un SDK di estensione è particolarmente utile se più di una delle condizioni precedenti è vera.An extension SDK is particularly useful if more than one of the above are true.

Nota    Per i componenti complessi, il sistema di gestione pacchetti NuGet offre un'alternativa open source per gli SDK di estensione.Note  For complex components, the NuGet package management system offers an open source alternative to extension SDKs. Analogamente agli SDK di estensione, NuGet consente di creare pacchetti che semplificano l'installazione di componenti complessi.Like extension SDKs, NuGet enables you to create packages that simplify the installation of complex components. Per un confronto tra i pacchetti NuGet e gli SDK di estensione di Visual Studio, vedere aggiunta di riferimenti tramite NuGet o SDK di estensione.For a comparison of NuGet packages and Visual Studio extension SDKs, see Adding References Using NuGet Versus an Extension SDK.

Distribuzione tramite copia dei fileDistribution by file copy

Se il componente è costituito da un singolo file con estensione winmd oppure da un file con estensione winmd e un file di indice di risorse (PRI), puoi semplicemente rendere il file con estensione winmd disponibile agli utenti per la copia.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. Gli utenti possono inserire il file nella posizione che vogliono in un progetto, usare la finestra di dialogo Aggiungi elemento esistente per aggiungere il file con estensione winmd al progetto e quindi usare la finestra di dialogo Gestione riferimenti per creare un riferimento.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. Se includi un file PRI o XML, indica agli utenti di posizionare tale file insieme al file con estensione winmd.If you include a .pri file or an .xml file, instruct users to place those files with the .winmd file.

Nota    Visual Studio produce sempre un file con estensione pri quando si compila il componente Windows Runtime, anche se il progetto non include risorse.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 si dispone di un'app di test per il componente, è possibile determinare se il file. pri viene usato esaminando il contenuto del pacchetto dell'app nella \ cartella bin debug \ appx.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. Se il file PRI del tuo componente non è presente in questa posizione, non sarà necessario distribuirlo.If the .pri file from your component doesn't appear there, you don't need to distribute it. In alternativa, puoi usare lo strumento MakePRI.exe per eseguire il dump del file di risorse dal progetto di componente Windows Runtime.Alternatively, you can use the MakePRI.exe tool to dump the resource file from your Windows Runtime Component project. Ad esempio, nella finestra del prompt dei comandi di Visual Studio digita: makepri dump /if MyComponent.pri /of MyComponent.pri.xml Per altre informazioni sui file PRI, vedi Sistema gestione risorse (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).

Distribuzione tramite SDK di estensioneDistribution by extension SDK

Un componente complesso include in genere risorse di Windows, ma fai riferimento alla nota sul rilevamento dei file PRI vuoti nella sezione precedente.A complex component usually includes Windows resources, but see the note about detecting empty .pri files in the previous section.

Per creare un SDK di estensioneTo create an extension SDK

  1. Assicurati che Visual Studio SDK sia installato.Make sure you have the Visual Studio SDK installed. Puoi scaricare Visual Studio SDK dalla pagina dei download di Visual Studio.You can download the Visual Studio SDK from the Visual Studio Downloads page.

  2. Crea un nuovo progetto usando il modello Progetto VSIX.Create a new project using the VSIX Project template. Il modello è disponibile in Visual C# o Visual Basic, nella categoria Extensibility.You can find the template under Visual C# or Visual Basic, in the Extensibility category. Questo modello viene installato come parte di Visual Studio SDK.This template is installed as part of the Visual Studio SDK. Gli articoli relativi alla procedura dettagliata di creazione di un SDK con C# o Visual Basic e alla procedura dettagliata di creazione di un SDK con C++ illustrano l'uso di questo modello in uno scenario molto(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. Determina la struttura delle cartelle per l'SDK.Determine the folder structure for your SDK. La struttura delle cartelle inizia al livello radice del progetto VSIX, con le cartelle References, Redist e DesignTime.The folder structure begins at the root level of your VSIX project, with the References, Redist, and DesignTime folders.

    • References è la posizione per i file binari che gli utenti possono usare per la programmazione.References is the location for binary files that your users can program against. L'SDK di estensione crea i riferimenti a questi file nei progetti di Visual Studio degli utenti.The extension SDK creates references to these files in your users' Visual Studio projects.
    • Redist è la posizione per altri file che devono essere distribuiti con i file binari, nelle app create usando il 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 è la posizione per i file usati solo quando gli sviluppatori creano app che usano il componente.DesignTime is the location for files that are used only when developers are creating apps that use your component.

    In ognuna di queste cartelle puoi creare cartelle di configurazione.In each of these folders, you can create configuration folders. I nomi consentiti sono debug, retail e CommonConfiguration.The permitted names are debug, retail, and CommonConfiguration. La cartella CommonConfiguration è destinata ai file che non cambiano indipendentemente dal fatto che vengano usati in build di debug o per la vendita.The CommonConfiguration folder is for files that are the same whether they're used by retail or debug builds. Se distribuisci solo build per la vendita del tuo componente, puoi inserire tutto in CommonConfiguration e omettere le altre due cartelle.If you're only distributing retail builds of your component, you can put everything in CommonConfiguration and omit the other two folders.

    In ogni cartella di configurazione puoi fornire cartelle di architettura per i file specifici della piattaforma.In each configuration folder, you can provide architecture folders for platform-specific files. Se usi gli stessi file per tutte le piattaforme, puoi fornire una singola cartella denominata neutral.If you use the same files for all platforms, you can supply a single folder named neutral. Per informazioni dettagliate sulla struttura di cartelle, inclusi altri nomi di cartelle di architettura, vedere procedura: creare un Software Development Kit.You can find details of the folder structure, including other architecture folder names, in How to: Create a Software Development Kit. Questo articolo illustra sia gli SDK della piattaforma sia gli SDK di estensione.(That article discusses both platform SDKs and extension SDKs. Per evitare confusione, puoi comprimere la sezione sugli SDK dellaYou may find it useful to collapse the section about platform SDKs, to avoid confusion. ))

  4. Crea un file manifesto SDK.Create an SDK manifest file. Il manifesto specifica le informazioni sul nome e sulla versione, sulle architetture supportate dall'SDK, sulle versioni di .NET e altre informazioni sul modo in cui Visual Studio usa l'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. Per informazioni dettagliate e un esempio, vedi l'articolo relativo alla procedura di creazione di un Software Development Kit.You can find details and an example in How to: Create a Software Development Kit.

  5. Crea e distribuisci l'SDK di estensione.Build and distribute the extension SDK. Per informazioni dettagliate, inclusa la localizzazione e la firma del pacchetto VSIX, vedere la pagina relativa alla Distribuzione VSIX.For in-depth information, including localizing and signing the VSIX package, see VSIX Deployment.