Verteilen einer verwalteten Komponente für Windows-RuntimeDistributing a managed Windows Runtime Component

Sie können Ihre Komponente für Windows-Runtime durch Kopieren der Dateien verteilen.You can distribute your Windows Runtime Component by file copy. Wenn Ihre Komponente aus vielen Dateien besteht, kann die Installation für Ihre Benutzer aber sehr mühsam sein.However, if your component consists of many files, installation can be tedious for your users. Außerdem verursachen Fehler beim Platzieren der Dateien oder beim Festlegen von Verweisen möglicherweise Probleme.Also, errors in placing files or failure to set references might cause problems for them. Sie können eine komplexe Komponente als Visual Studio-Erweiterungs-SDK packen, um die Installation und Verwendung einfacher zu gestalten.You can package a complex component as a Visual Studio extension SDK, to make it easy to install and use. Benutzer müssen nur einen Verweis für das gesamte Paket festlegen.Users only need to set one reference for the entire package. Mithilfe des Dialog Felds Erweiterungen und Updates können Sie die Komponente problemlos suchen und installieren, wie untersuchen und Verwenden von Visual Studio-Erweiterungenbeschrieben.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.

Planen einer verteilbaren Komponente für Windows-RuntimePlanning a distributable Windows Runtime Component

Wählen Sie eindeutige Namen für Binärdateien, z. B. für Ihre WINMD-Dateien.Choose unique names for binary files, such as your .winmd files. Wir empfehlen das folgende Format, um die Eindeutigkeit sicherzustellen:We recommend the following format to ensure uniqueness:

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

Ihre Binärdateien werden in App-Paketen möglicherweise mit Binärdateien von anderen Entwicklern installiert.Your binary files will be installed in app packages, possibly with binary files from other developers. Weitere Informationen finden Sie unter "Erweiterungs-sdche" in Gewusst wie: Erstellen eines Software Development Kits.See "Extension SDKs" in How to: Create a Software Development Kit.

Die Entscheidung darüber, wie Sie Ihre Komponente verteilen, hängt von Komplexität der Komponente ab.To decide how to distribute your component, consider how complex it is. Sie sollten ein Erweiterungs-SDK oder einen ähnlichen Paket-Manager verwenden, wenn:An extension SDK or similar package manager is recommended when:

  • Ihre Komponente aus mehreren Dateien besteht.Your component consists of multiple files.
  • Sie Versionen Ihrer Komponente für mehrere Plattformen (z. B. x86 und ARM) bereitstellen.You provide versions of your component for multiple platforms (x86 and ARM, for example).
  • Sie Debug- und Releaseversionen Ihrer Komponente bereitstellen.You provide both debug and release versions of your component.
  • Ihre Komponente über Dateien und Assemblys verfügt, die nur zur Entwurfszeit verwendet werden.Your component has files and assemblies that are used only at design time.

Ein Erweiterungs-SDK ist besonders nützlich, wenn mindestens einer der oben genannten Punkte zutrifft.An extension SDK is particularly useful if more than one of the above are true.

Hinweis    Bei komplexen Komponenten bietet das nuget-Paketverwaltungssystem eine Open Source-Alternative zu Erweiterungs-sdert.Note  For complex components, the NuGet package management system offers an open source alternative to extension SDKs. Wie mit Erweiterungs-SDKs können Sie mit NuGet Pakete erstellen, die die Installation komplexer Komponenten vereinfachen.Like extension SDKs, NuGet enables you to create packages that simplify the installation of complex components. Einen Vergleich der nuget-Pakete und Visual Studio-Erweiterungs-SDKs finden Sie unter Hinzufügen von verweisen mithilfe von nuget im Vergleich zu einem Erweiterungs-SDK.For a comparison of NuGet packages and Visual Studio extension SDKs, see Adding References Using NuGet Versus an Extension SDK.

Verteilung durch Kopieren von DateienDistribution by file copy

Wenn Ihre Komponente aus einer einzigen WINMD-Datei oder einer WINMD-Datei und einer Ressourcenindexdatei (PRI) besteht, können Sie einfach die WINMD-Datei so bereitstellen, dass Benutzer sie kopieren können.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. Benutzer können die Datei an einer beliebige Position in ein Projekt einfügen, im Dialogfeld Vorhandenes Element hinzufügen die WINMD-Datei dem Projekt hinzufügen und dann mit dem Dialogfeld „Verweis-Manager” einen Verweis erstellen.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. Wenn Sie eine PRI-Datei oder eine XML-Datei einbeziehen, sollten Sie die Benutzer anweisen, diese Dateien in dasselbe Verzeichnis wie die WINMD-Datei zu kopieren.If you include a .pri file or an .xml file, instruct users to place those files with the .winmd file.

Hinweis    Visual Studio erzeugt immer eine PRI-Datei, wenn Sie die Windows-Runtime Komponente erstellen, auch wenn Ihr Projekt keine Ressourcen enthält.Note  Visual Studio always produces a .pri file when you build your Windows Runtime Component, even if your project doesn't include any resources. Wenn Sie über eine Test-App für die Komponente verfügen, können Sie bestimmen, ob die PRI-Datei verwendet wird, indem Sie den Inhalt des App-Pakets im Ordner "bin \ Debug AppX" untersuchen \ .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. Wenn die PRI-Datei Ihrer Komponente dort nicht angezeigt wird, müssen Sie sie nicht verteilen.If the .pri file from your component doesn't appear there, you don't need to distribute it. Sie können auch mit dem Tool MakePRI.exe die Ressourcendatei aus Ihrem Komponentenprojekt für Windows-Runtime ausgeben.Alternatively, you can use the MakePRI.exe tool to dump the resource file from your Windows Runtime Component project. Geben Sie z. B. im Eingabeaufforderungsfenster von Visual Studio Folgendes ein: makepri dump /if MyComponent.pri /of MyComponent.pri.xml. Weitere Informationen zu PRI-Dateien finden Sie unter Ressourcenverwaltungssystem (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).

Verteilung durch Erweiterungs-SDKDistribution by extension SDK

Eine komplexe Komponente enthält in der Regel Windows-Ressourcen, aber lesen Sie den Hinweis zum Erkennen von leeren PRI-Dateien im vorherigen Abschnitt.A complex component usually includes Windows resources, but see the note about detecting empty .pri files in the previous section.

So erstellen Sie ein Erweiterungs-SDKTo create an extension SDK

  1. Überprüfen Sie, ob das Visual Studio-SDK installiert ist.Make sure you have the Visual Studio SDK installed. Sie können das Visual Studio-SDK von der Seite Visual Studio-Downloads herunterladen.You can download the Visual Studio SDK from the Visual Studio Downloads page.

  2. Erstellen eines neues Projekts mit der VSIX-ProjektvorlageCreate a new project using the VSIX Project template. Sie finden die Vorlage in der Kategorie „Erweiterbarkeit” unter Visual C# oder Visual Basic.You can find the template under Visual C# or Visual Basic, in the Extensibility category. Diese Vorlage wird als Teil des Visual Studio-SDK installiert.This template is installed as part of the Visual Studio SDK. (Exemplarische Vorgehensweise: Erstellen eines SDK mit c# oder Visual Basic oder Exemplarische Vorgehensweise : Erstellen einesSDKs mithilfe von C++ veranschaulicht die Verwendung dieser Vorlage in einem sehr einfachen Szenario.(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. Legen Sie die Ordnerstruktur für Ihr SDK fest.Determine the folder structure for your SDK. Die Ordnerstruktur beginnt auf der Stammebene des VSIX-Projekts mit den Ordnern References, Redist und DesignTime.The folder structure begins at the root level of your VSIX project, with the References, Redist, and DesignTime folders.

    • References ist der Speicherort für Binärdateien, die Ihre Benutzer für die Programmierung verwenden können.References is the location for binary files that your users can program against. Das Erweiterungs-SDK erstellt in den Visual Studio-Projekten Ihrer Benutzer Verweise auf diese Dateien.The extension SDK creates references to these files in your users' Visual Studio projects.
    • Redist ist der Speicherort für andere Dateien, die mit Ihren Binärdateien in Apps, die mit Ihrer Komponente erstellt werden, verteilt werden müssen.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 ist der Speicherort für Dateien, die nur verwendet werden, wenn Entwickler Apps erstellen, die Ihre Komponente verwenden.DesignTime is the location for files that are used only when developers are creating apps that use your component.

    In jedem dieser Ordner können Sie Konfigurationsordner erstellen.In each of these folders, you can create configuration folders. Die zulässigen Namen sind „debug”, „retail” und „CommonConfiguration”.The permitted names are debug, retail, and CommonConfiguration. Der Ordner „CommonConfiguration” ist für Dateien vorgesehen, die für „retail”- und „debug”-Builds identisch sind.The CommonConfiguration folder is for files that are the same whether they're used by retail or debug builds. Wenn Sie nur „retail”-Builds Ihrer Komponente verteilen, können Sie alles in „CommonConfiguration” einfügen und die beiden anderen Ordner weglassen.If you're only distributing retail builds of your component, you can put everything in CommonConfiguration and omit the other two folders.

    In jedem Konfigurationsordner können Sie Architekturordner für plattformspezifische Dateien bereitstellen.In each configuration folder, you can provide architecture folders for platform-specific files. Wenn Sie dieselben Dateien für alle Plattformen verwenden, können Sie einen einzelnen Ordner mit dem Namen „neutral” vorsehen.If you use the same files for all platforms, you can supply a single folder named neutral. Details zur Ordnerstruktur, einschließlich weiterer Architektur Ordnernamen, finden Sie unter Gewusst wie: Erstellen eines Software Development Kits.You can find details of the folder structure, including other architecture folder names, in How to: Create a Software Development Kit. (Dieser Artikel behandelt Plattform-SDKs und Erweiterungs-SDKs.(That article discusses both platform SDKs and extension SDKs. Reduzieren Sie den Abschnitt über Plattform-SDKs, um Missverständnisse zu vermeiden.You may find it useful to collapse the section about platform SDKs, to avoid confusion. ))

  4. Erstellen Sie eine SDK-Manifestdatei.Create an SDK manifest file. Das Manifest gibt den Namen und die Versionsinformationen, die von Ihrem SDK unterstützten Architekturen, .NET-Versionen und andere Informationen über die Art und Weise an, wie Visual Studio Ihr SDK verwendet.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. Ausführliche Informationen und ein Beispiel dazu finden Sie unter Gewusst wie: Erstellen eines Software Development Kit (SDK).You can find details and an example in How to: Create a Software Development Kit.

  5. Erstellen und verteilen Sie das Erweiterungs-SDK.Build and distribute the extension SDK. Ausführliche Informationen, einschließlich lokalisieren und Signieren des VSIX-Pakets, finden Sie unter VSIX-Bereitstellung.For in-depth information, including localizing and signing the VSIX package, see VSIX Deployment.