Exemplarische Vorgehensweise: Erstellen eines SDK mithilfe von C# oder Visual Basic

Gilt für:yesnoVisual Studio Visual Studio für Mac noVisual Studio Code

In dieser exemplarischen Vorgehensweise erfahren Sie, wie Sie ein einfaches Math Library SDK mithilfe von Visual C# erstellen und dann das SDK als Visual Studio Extension (VSIX) verpacken. Sie führen die folgenden Verfahren aus:

Voraussetzungen

Um dieser exemplarischen Vorgehensweise folgen zu können, müssen Sie das Visual Studio SDK installieren. Weitere Informationen finden Sie unter Visual Studio SDK.

So erstellen Sie die SimpleMath-Windows-Runtime-Komponente

  1. Klicken Sie in der Menüleiste auf Datei>Neu>Projekt.

  2. Erweitern Sie in der Liste der Vorlagen Visual C# oder Visual Basic, wählen Sie den knoten Windows Store aus, und wählen Sie dann die Windows-Runtime Komponentenvorlage aus.

  3. Geben Sie im Feld "Name " die Option "SimpleMath" an, und wählen Sie dann die Schaltfläche "OK " aus.

  4. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den SimpleMath-Projektknoten, und wählen Sie dann "Eigenschaften" aus.

  5. Benennen Sie Class1.cs in Arithmetic.cs um, und aktualisieren Sie sie, um dem folgenden Code zu entsprechen:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace WinRTMath
    {
        public sealed class Arithmetic
        {
            public float add(float firstNumber, float secondNumber)
            {
                return (firstNumber + secondNumber);
            }
    
            public float subtract(float firstNumber, float secondNumber)
            {
                return (firstNumber - secondNumber);
            }
    
            public float multiply(float firstNumber, float secondNumber)
            {
                return (firstNumber * secondNumber);
            }
    
            public float divide(float firstNumber, float secondNumber)
            {
                return (firstNumber / secondNumber);
            }
        }
    }
    
  6. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Knoten "SimpleMath", und wählen Sie dann Configuration Manager aus.

    Das Dialogfeld Configuration Manager wird geöffnet.

  7. Wählen Sie in der Liste " Aktive Lösungskonfiguration" die Option "Version" aus.

  8. Überprüfen Sie in der Spalte "Konfiguration ", ob die Zeile "SimpleMath " auf "Release" festgelegt ist, und wählen Sie dann die Schaltfläche " Schließen " aus, um die Änderung zu akzeptieren.

    Wichtig

    Das SDK für die SimpleMath-Komponente umfasst nur eine Konfiguration. Diese Konfiguration muss der Release-Build oder Apps sein, die die Komponente verwenden, die Zertifizierung für die Microsoft Store nicht übergeben.

  9. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den SimpleMath-Projektknoten, und wählen Sie dann "Build" aus.

So erstellen Sie das SimpleMathVSIX-Erweiterungsprojekt

  1. Wählen Sie im Kontextmenü für den Knoten "SimpleMath" die Option"Neue Projecthinzufügen>" aus.

  2. Erweitern Sie in der Liste der Vorlagen Visual C# oder Visual Basic, wählen Sie den Erweiterungsknoten aus, und wählen Sie dann die VSIX-Project-Vorlage aus.

  3. Geben Sie im Feld "Name " simpleMathVSIX an, und wählen Sie dann die Schaltfläche "OK " aus.

  4. Wählen Sie in Projektmappen-Explorer das Element "source.extension.vsixmanifest" aus.

  5. Wählen Sie in der Menüleiste Ansicht>Code aus.

  6. Ersetzen Sie die vorhandene XML durch die folgende XML:

    <PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
      <Metadata>
        <Identity Id="SimpleMath" Version="1.0" Language="en-US" Publisher="[YourName]" />
        <DisplayName>SimpleMath Library</DisplayName>
        <Description xml:space="preserve">Basic arithmetic operations in a WinRT-compatible library. Implemented in C#.</Description>
      </Metadata>
      <Installation Scope="Global" AllUsers="true">
        <InstallationTarget Id="Microsoft.ExtensionSDK" TargetPlatformIdentifier="Windows" TargetPlatformVersion="v8.0" SdkName="SimpleMath" SdkVersion="1.0" />
      </Installation>
      <Prerequisites>
        <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[14.0,16.0]" />
      </Prerequisites>
      <Dependencies>
        <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="4.5" />
      </Dependencies>
      <Assets>
        <Asset Type="Microsoft.ExtensionSDK" d:Source="File" Path="SDKManifest.xml" />
      </Assets>
    </PackageManifest>
    
  7. Wählen Sie in Projektmappen-Explorer das SimpleMathVSIX-Projekt aus.

  8. Wählen Sie in der Menüleiste Projekt>Neues Element hinzufügen aus.

  9. Erweitern Sie in der Liste der allgemeinen ElementeDaten, und wählen Sie dann XML-Datei aus.

  10. Geben Sie SDKManifest.xmlim Feld "Name" die Schaltfläche "Hinzufügen" an, und wählen Sie dann die Schaltfläche "Hinzufügen" aus.

  11. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für SDKManifest.xml, wählen Sie "Eigenschaften" aus, und ändern Sie dann den Wert der "Include in VSIX"-Eigenschaft in "True".

  12. Ersetzen Sie den Inhalt der Datei durch folgendes XML:

    C#

    <FileList
      DisplayName="WinRT Math Library (CS)"
      MinVSVersion="11.0"
      TargetFramework=".NETCore,version=v4.5"
      AppliesTo="WindowsAppContainer"
      SupportsMultipleVersions="Error"
      MoreInfo="https://msdn.microsoft.com/">
    </FileList>
    

    Visual Basic

    <FileList
      DisplayName="WinRT Math Library (VB)"
      MinVSVersion="11.0"
      TargetFramework=".NETCore,version=v4.5"
      AppliesTo="WindowsAppContainer"
      SupportsMultipleVersions="Error"
      MoreInfo="https://msdn.microsoft.com/">
    </FileList>
    
  13. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das SimpleMathVSIX-Projekt, wählen Sie "Hinzufügen" aus, und wählen Sie dann "Neuer Ordner" aus.

  14. Benennen Sie den Ordner in references um.

  15. Öffnen Sie das Kontextmenü für den Ordner "Verweise" , wählen Sie "Hinzufügen" und dann "Neuer Ordner" aus.

  16. Benennen Sie den Unterordner um commonconfiguration, erstellen Sie einen Unterordner darin, und benennen Sie den Unterordner neutral.

  17. Wiederholen Sie die vorherigen vier Schritte, in diesem Zeitpunkt wird der erste Ordner umbenannt.redist

    Das Projekt enthält jetzt die folgende Ordnerstruktur:

    references\commonconfiguration\neutral
    redist\commonconfiguration\neutral
    
  18. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das SimpleMath-Projekt, und wählen Sie dann "Ordner öffnen" in Explorer aus.

  19. Navigieren Sie in Explorer zum Bin\Release-Ordner, öffnen Sie das Kontextmenü für die Datei "SimpleMath.winmd", und wählen Sie dann "Kopieren" aus.

  20. Fügen Sie in Projektmappen-Explorer die Datei in den Ordner "Verweise\commonconfiguration"\neutral im SimpleMathVSIX-Projekt ein.

  21. Wiederholen Sie den vorherigen Schritt, indem Sie die Datei SimpleMath.pri in die redist\commonconfiguration\neutral folder im SimpleMathVSIX-Projekt einfügen.

  22. Wählen Sie in Projektmappen-Explorer"SimpleMath.winmd" aus.

  23. Wählen Sie auf der Menüleiste "Ansichtseigenschaften>" (Tastatur: F4-TASTE auswählen).

  24. Ändern Sie im Fenster "Eigenschaften " die Buildaktionseigenschaft in Content, und ändern Sie dann die "Include in VSIX "-Eigenschaft in "True".

  25. Wiederholen Sie in Projektmappen-Explorer diesen Prozess für SimpleMath.pri.

  26. Wählen Sie in Projektmappen-Explorer das SimpleMathVSIX-Projekt aus.

  27. Wählen Sie auf der Menüleiste ">Build SimpleMathVSIX" aus.

  28. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das SimpleMathVSIX-Projekt, und wählen Sie dann "Ordner öffnen" in Explorer aus.

  29. Navigieren Sie in Explorer zu \bin\Release-Ordner, und führen Sie dann SimpleMathVSIX.vsix aus, um sie zu installieren.

  30. Wählen Sie die Schaltfläche "Installieren" aus, warten Sie, bis die Installation abgeschlossen ist, und starten Sie dann Visual Studio neu.

So erstellen Sie eine Beispiel-App, die die Klassenbibliothek verwendet.

  1. Klicken Sie in der Menüleiste auf Datei>Neu>Projekt.

  2. Erweitern Sie in der Liste der Vorlagen Visual C# oder Visual Basic, und wählen Sie dann den knoten Windows Store aus.

  3. Wählen Sie die Vorlage "Leere App " aus, benennen Sie das Projekt ArithmetikUI, und wählen Sie dann die Schaltfläche "OK " aus.

  4. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das ArithmeticUI-Projekt, und wählen Sie dann"Verweishinzufügen>" aus.

  5. Erweitern Sie in der Liste der Referenztypen Windows, und wählen Sie dann Erweiterungen aus.

  6. Wählen Sie im Detailbereich die Erweiterung "WinRT Math Library " aus.

    Weitere Informationen zu Ihrem SDK werden angezeigt. Sie können den Link "Weitere Informationen " auswählen, der geöffnet https://msdn.microsoft.com/werden soll, wie Sie in der SDKManifest.xml-Datei zuvor in dieser exemplarischen Vorgehensweise angegeben haben.

  7. Aktivieren Sie im Dialogfeld "Referenz-Manager " das Kontrollkästchen "WinRT Math Library ", und wählen Sie dann die Schaltfläche "OK " aus.

  8. Wählen Sie auf der Menüleiste denAnsichtsobjektbrowser> aus.

  9. Wählen Sie in der Liste "Durchsuchen " die Option "Einfache Mathematik" aus.

    Sie können jetzt erkunden, was im SDK ist.

  10. Öffnen Sie in Projektmappen-ExplorerMainPage.xaml den Inhalt durch folgendes XAML:

    C#

    <Page
        x:Class="ArithmeticUI.MainPage"
        IsTabStop="False"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:SimpleMath"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d">
    
        <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
            <TextBox x:Name="_firstNumber" HorizontalAlignment="Left" Margin="414,370,0,0" TextWrapping="Wrap" Text="First Number" VerticalAlignment="Top" Height="32" Width="135" TextAlignment="Center"/>
            <TextBox x:Name="_secondNumber" HorizontalAlignment="Left" Margin="613,370,0,0" TextWrapping="Wrap" Text="Second Number" VerticalAlignment="Top" Height="32" Width="135" TextAlignment="Center"/>
            <Button Content="+" HorizontalAlignment="Left" Margin="557,301,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="-" HorizontalAlignment="Left" Margin="557,345,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="*" HorizontalAlignment="Left" Margin="557,389,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="/" HorizontalAlignment="Left" Margin="557,433,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="=" HorizontalAlignment="Left" Margin="755,367,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnResultsClick"/>
            <TextBox x:Name="_result" HorizontalAlignment="Left" Margin="809,370,0,0" TextWrapping="Wrap" Text="Result" VerticalAlignment="Top" Height="32" Width="163" TextAlignment="Center" IsReadOnly="True"/>
        </Grid>
    </Page>
    

    Visual Basic

    <Page
        x:Class="ArithmeticUI.MainPage"
        IsTabStop="False"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:SimpleMath"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d">
    
        <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
            <TextBox x:Name="_firstNumber" HorizontalAlignment="Left" Margin="414,370,0,0" TextWrapping="Wrap" Text="First Number" VerticalAlignment="Top" Height="32" Width="135" TextAlignment="Center"/>
            <TextBox x:Name="_secondNumber" HorizontalAlignment="Left" Margin="613,370,0,0" TextWrapping="Wrap" Text="Second Number" VerticalAlignment="Top" Height="32" Width="135" TextAlignment="Center"/>
            <Button Content="+" HorizontalAlignment="Left" Margin="557,301,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="-" HorizontalAlignment="Left" Margin="557,345,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="*" HorizontalAlignment="Left" Margin="557,389,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="/" HorizontalAlignment="Left" Margin="557,433,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="=" HorizontalAlignment="Left" Margin="755,367,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnResultsClick"/>
            <TextBox x:Name="_result" HorizontalAlignment="Left" Margin="809,370,0,0" TextWrapping="Wrap" Text="Result" VerticalAlignment="Top" Height="32" Width="163" TextAlignment="Center" IsReadOnly="True"/>
        </Grid>
    </Page>
    
  11. Aktualisieren Sie MainPage.xaml.cs , um dem folgenden Code zu entsprechen:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

namespace ArithmeticUI
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public static string operation = null;

        public MainPage()
        {
            this.InitializeComponent();
        }

        /// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.  The Parameter
        /// property is typically used to configure the page.</param>
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
        }

        /// <summary>
        /// Sets the operator chosen by the user
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnOperatorClick(object sender, RoutedEventArgs e)
        {
            operation = (sender as Button).Content.ToString();
        }

        /// <summary>
        /// Calls the SimpleMath SDK to do simple arithmetic
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnResultsClick(object sender, RoutedEventArgs e)
        {
            try
            {
                float firstNumber = float.Parse(this._firstNumber.Text);
                float secondNumber = float.Parse(this._secondNumber.Text);

                SimpleMath.Arithmetic math = new SimpleMath.Arithmetic();

                switch (operation)
                {
                    case "+":
                        this._result.Text = (math.add(firstNumber, secondNumber)).ToString();
                        break;
                    case "-":
                        this._result.Text = (math.subtract(firstNumber, secondNumber)).ToString();
                        break;
                    case "*":
                        this._result.Text = (math.multiply(firstNumber, secondNumber)).ToString();
                        break;
                    case "/":
                        this._result.Text = (math.divide(firstNumber, secondNumber)).ToString();
                        break;
                    default:
                        this._result.Text = "Choose operator";
                        break;
                }
            }
            catch
            {
                this._result.Text = "Enter valid #";
            }
        }
    }
}
  1. Wählen Sie die F5-Taste aus, um die App auszuführen.

  2. Geben Sie in der App alle zwei Zahlen ein, wählen Sie einen Vorgang aus, und wählen Sie dann die = Schaltfläche aus.

    Das richtige Ergebnis wird angezeigt.

    Sie haben erfolgreich ein Erweiterungs-SDK erstellt und verwendet.

Siehe auch