Procédure pas à pas : Créer un kit de développement à l’aide de c# ou Visual BasicWalkthrough: Create an SDK using C# or Visual Basic

Dans cette procédure pas à pas, vous allez apprendre à créer un kit de développement de bibliothèque mathématique simple à l’aide de Visual c#, puis d’empaqueter le Kit de développement logiciel en tant qu’une Extension Visual Studio (VSIX).In this walkthrough, you'll learn how to create a simple Math Library SDK by using Visual C# and then package the SDK as a Visual Studio Extension (VSIX). Vous allez effectuer les procédures suivantes :You'll complete the following procedures:

PrérequisPrerequisites

Pour suivre cette procédure pas à pas, vous devez installer le Kit de développement logiciel (SDK) Visual Studio.To follow this walkthrough, you must install the Visual Studio SDK. Pour plus d’informations, consultez Visual Studio SDK.For more information, see Visual Studio SDK.

Pour créer le composant SimpleMath Windows RuntimeTo create the SimpleMath Windows Runtime component

  1. Dans la barre de menus, choisissez fichier > New > nouveau projet.On the menu bar, choose File > New > New Project.

  2. Dans la liste des modèles, développez Visual C# ou Visual Basic, choisissez le Windows Store nœud, puis choisissez le composant d’exécution Windows modèle.In the list of templates, expand Visual C# or Visual Basic, choose the Windows Store node, and then choose the Windows Runtime Component template.

  3. Dans le nom , spécifiez SimpleMath, puis choisissez le OK bouton.In the Name box, specify SimpleMath, and then choose the OK button.

  4. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMath nœud de projet, puis choisissez propriétés.In Solution Explorer, open the shortcut menu for the SimpleMath project node, and then choose Properties.

  5. Renommer Class1.cs à Arithmetic.cs et mettre à jour pour correspondre à ce qui suit :Rename Class1.cs to Arithmetic.cs and update it to match the following code:

    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);
            }
        }
    }
    
    Public NotInheritable Class Arithmetic
        Public Function Add(ByVal firstNumber As Single, ByVal secondNumber As Single) As Single
            Return (firstNumber + secondNumber)
        End Function
    
        Public Function Subtract(ByVal firstNumber As Single, ByVal secondNumber As Single) As Single
            Return (firstNumber - secondNumber)
        End Function
    
        Public Function Multiply(ByVal firstNumber As Single, ByVal secondNumber As Single) As Single
            Return (firstNumber * secondNumber)
        End Function
    
        Public Function Divide(ByVal firstNumber As Single, ByVal secondNumber As Single) As Single
            Return (firstNumber / secondNumber)
        End Function
    End Class
    
  6. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le Solution 'SimpleMath' nœud, puis choisissez Configuration Manager.In Solution Explorer, open the shortcut menu for the Solution 'SimpleMath' node, and then choose Configuration Manager.

    Le Configuration Manager boîte de dialogue s’ouvre.The Configuration Manager dialog box opens.

  7. Dans le configuration de solution Active , choisissez version.In the Active solution configuration list, choose Release.

  8. Dans le Configuration colonne, vérifiez que SimpleMath ligne est définie sur version, puis choisissez le fermer bouton pour accepter le modifier.In the Configuration column, verify that SimpleMath row is set to Release, and then choose the Close button to accept the change.

    Important

    Le Kit de développement pour le composant SimpleMath ne comprend qu’une seule configuration.The SDK for the SimpleMath component includes only one configuration. Cette configuration doit être la version Release, ou les applications qui utilisent le composant ne sont pas passer la certification leMicrosoft StoreMicrosoft Store.This configuration must be the release build, or apps that use the component won't pass certification for theMicrosoft StoreMicrosoft Store.

  9. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMath nœud de projet, puis choisissez Build.In Solution Explorer, open the shortcut menu for the SimpleMath project node, and then choose Build.

Pour créer le projet d’extension SimpleMathVSIXTo create the SimpleMathVSIX extension project

  1. Dans le menu contextuel pour le Solution 'SimpleMath' nœud, choisissez ajouter > nouveau projet.On the shortcut menu for the Solution 'SimpleMath' node, choose Add > New Project.

  2. Dans la liste des modèles, développez Visual C# ou Visual Basic, choisissez le extensibilité nœud, puis choisissez le projet VSIX modèle.In the list of templates, expand Visual C# or Visual Basic, choose the Extensibility node, and then choose the VSIX Project template.

  3. Dans le nom , spécifiez SimpleMathVSIX, puis choisissez le OK bouton.In the Name box, specify SimpleMathVSIX, and then choose the OK button.

  4. Dans l’Explorateur de solutions, choisissez le source.extension.vsixmanifest élément.In Solution Explorer, choose the source.extension.vsixmanifest item.

  5. Dans la barre de menus, sélectionnez Afficher > Code.On the menu bar, choose View > Code.

  6. Remplacez le code XML existant par le code XML suivant :Replace the existing XML with the following 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="WinRTMathCS" Version="1.0" Language="en-US" Publisher="[YourName]" />
        <DisplayName>WinRT Math Library (CS)</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="WinRT Math (CS)" SdkVersion="1.0" />
      </Installation>
      <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. Dans l’Explorateur de solutions, choisissez le SimpleMathVSIX projet.In Solution Explorer, choose the SimpleMathVSIX project.

  8. Dans la barre de menus, choisissez Projet > Ajouter un nouvel élément.On the menu bar, choose Project > Add New Item.

  9. Dans la liste des éléments communs, développez données, puis choisissez fichier XML.In the list of Common Items, expand Data, and then choose XML File.

  10. Dans le nom , spécifiez SDKManifest.xml, puis choisissez le ajouter bouton.In the Name box, specify SDKManifest.xml, and then choose the Add button.

  11. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour SDKManifest.xml, choisissez propriétés, puis modifiez la valeur de la inclure dans VSIX propriété True.In Solution Explorer, open the shortcut menu for SDKManifest.xml, choose Properties, and then change the value of the Include in VSIX property to True.

  12. Remplacez le contenu du fichier par le code XML suivant :Replace the contents of the file with the following XML:

    C#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 BasicVisual 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. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMathVSIX de projet, choisissez ajouter, puis choisissez nouveau dossier.In Solution Explorer, open the shortcut menu for the SimpleMathVSIX project, choose Add, and then choose New Folder.

  14. Renommez le dossier references.Rename the folder to references.

  15. Ouvrez le menu contextuel pour le références dossier, choisissez ajouter, puis choisissez nouveau dossier.Open the shortcut menu for the References folder, choose Add, and then choose New Folder.

  16. Renommez le sous-dossier à commonconfiguration, créez un sous-dossier qu’il contient et nommez le sous-dossier neutral.Rename the subfolder to commonconfiguration, create a subfolder within it, and name the subfolder neutral.

  17. Répétez les quatre étapes précédentes, cette fois le premier dossier à renommé redist.Repeat the previous four steps, this time renaming the first folder to redist.

    Le projet contient maintenant la structure de dossiers suivante :The project now contains the following folder structure:

    references\commonconfiguration\neutral  
    redist\commonconfiguration\neutral  
    
  18. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMath de projet, puis choisissez ouvrir le dossier dans l’Explorateur de fichiers.In Solution Explorer, open the shortcut menu for the SimpleMath project, and then choose Open Folder in File Explorer.

  19. Dans Explorateur de fichiers, accédez à la bin\Release dossier, ouvrez le menu contextuel pour le SimpleMath.winmd de fichiers, puis choisissez copier.In File Explorer, navigate to the bin\Release folder, open the shortcut menu for the SimpleMath.winmd file, and then choose Copy.

  20. Dans l’Explorateur de solutions, collez le fichier dans le references\commonconfiguration\neutral dossier dans le SimpleMathVSIX projet.In Solution Explorer, paste the file into the references\commonconfiguration\neutral folder in the SimpleMathVSIX project.

  21. Répétez l’étape précédente, coller le SimpleMath.pri de fichiers dans le redist\commonconfiguration\neutral dossier dans le SimpleMathVSIX projet.Repeat the previous step, pasting the SimpleMath.pri file into the redist\commonconfiguration\neutral folder in the SimpleMathVSIX project.

  22. Dans l’Explorateur de solutions, choisissez SimpleMath.winmd.In Solution Explorer, choose SimpleMath.winmd.

  23. Dans la barre de menus, choisissez vue > propriétés (clavier : choisissez le F4 clé).On the menu bar, choose View > Properties (Keyboard: Choose the F4 key).

  24. Dans le propriétés fenêtre, la modification la Action de génération propriété contenu, puis modifiez le inclure dans VSIX propriété True.In the Properties window, change the Build Action property to Content, and then change the Include in VSIX property to True.

  25. Dans l’Explorateur de solutions, répétez ce processus pour SimpleMath.pri.In Solution Explorer, repeat this process for SimpleMath.pri.

  26. Dans l’Explorateur de solutions, choisissez le SimpleMathVSIX projet.In Solution Explorer, choose the SimpleMathVSIX project.

  27. Dans la barre de menus, choisissez Build > SimpleMathVSIX Build.On the menu bar, choose Build > Build SimpleMathVSIX.

  28. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMathVSIX de projet, puis choisissez ouvrir le dossier dans l’Explorateur de fichiers.In Solution Explorer, open the shortcut menu for the SimpleMathVSIX project, and then choose Open Folder in File Explorer.

  29. Dans Explorateur de fichiers, accédez à \bin\Release dossier, puis exécutez SimpleMathVSIX.vsix pour l’installer.In File Explorer, navigate to \bin\Release folder, and then run SimpleMathVSIX.vsix to install it.

  30. Choisissez le installer bouton, attendez que l’installation se termine, puis redémarrez Visual Studio.Choose the Install button, wait for the installation to finish, and then restart Visual Studio.

Pour créer un exemple d’application qui utilise la bibliothèque de classesTo create a sample app that uses the class library

  1. Dans la barre de menus, choisissez fichier > New > nouveau projet.On the menu bar, choose File > New > New Project.

  2. Dans la liste des modèles, développez Visual C# ou Visual Basic, puis choisissez le Windows Store nœud.In the list of templates, expand Visual C# or Visual Basic, and then choose the Windows Store node.

  3. Choisissez le application vide modèle, nommez le projet ArithmeticUI, puis choisissez le OK bouton.Choose the Blank App template, name the project ArithmeticUI, and then choose the OK button.

  4. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le ArithmeticUI de projet, puis choisissez ajouter > référence.In Solution Explorer, open the shortcut menu for the ArithmeticUI project, and then choose Add > Reference.

  5. Dans la liste des types référence, développez Windows, puis choisissez Extensions.In the list of reference types, expand Windows, and then choose Extensions.

  6. Dans le volet de détails, choisissez le Simple mathématiques SDK extension.In the details pane, choose the Simple Math SDK extension.

    Des informations supplémentaires sur votre Kit de développement logiciel s’affiche.Additional information about your SDK appears. Vous pouvez choisir le plus d’informations lien pour ouvrir https://msdn.microsoft.com/, que vous avez spécifié dans le fichier SDKManifest.xml plus haut dans cette procédure pas à pas.You can choose the More Information link to open https://msdn.microsoft.com/, as you specified in the SDKManifest.xml file earlier in this walkthrough.

  7. Dans le Gestionnaire de références boîte de dialogue, sélectionnez le Simple mathématiques SDK case à cocher, puis choisissez le OK bouton.In the Reference Manager dialog box, select the Simple Math SDK check box, and then choose the OK button.

  8. Dans la barre de menus, choisissez vue > Explorateur d’objets.On the menu bar, choose View > Object Browser.

  9. Dans le Parcourir , choisissez mathématiques simples.In the Browse list, choose Simple Math.

    Vous pouvez maintenant Explorer Nouveautés dans le Kit de développement.You can now explore what's in the SDK.

  10. Dans l’Explorateur de solutions, ouvrez MainPage.xamlet remplacez son contenu par le XAML suivant :In Solution Explorer, open MainPage.xaml, and replace its contents with the following XAML:

    C#C#

    <Page
        x:Class="WinRTMathTestCS.MainPage"
        IsTabStop="False"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:WinRTMathTestCS"
        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 BasicVisual Basic

    <Page
        x:Class="WinRTMathTest.MainPage"
        IsTabStop="False"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:WinRTMathTest"
        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. Mise à jour MainPage.xaml.cs pour faire correspondre le code suivant :Update MainPage.xaml.cs to match the following code:

    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 WinRTMathTestCS
    {
        /// <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);
    
                    WinRTMath.Arithmetic math = new WinRTMath.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 #";
                }
            }
        }
    }
    
    ' The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
    
    ''' <summary>
    ''' An empty page that can be used on its own or navigated to within a Frame.
    ''' </summary>
    Public NotInheritable Class MainPage
        Inherits Page
    
        ''' <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 Overrides Sub OnNavigatedTo(e As Navigation.NavigationEventArgs)
        
        End Sub
    
        Public Shared operation As String = Nothing
    
        ''' <summary>
        ''' Sets the operator chosen by the user
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub OnOperatorClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
            operation = If(TypeOf sender Is Button, CType(sender, Button), Nothing).Content.ToString()
        End Sub
    
    
        ''' <summary>
        ''' Calls the SimpleMath SDK to do simple arithmetic
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub OnResultsClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
    
            Try
    
                Dim firstNumber As Single = Single.Parse(Me._firstNumber.Text)
                Dim secondNumber As Single = Single.Parse(Me._secondNumber.Text)
    
                Dim math As New WinRTMath.Arithmetic()
    
                Select Case (operation)
    
                    Case "+"
                        Me._result.Text = (math.Add(firstNumber, secondNumber)).ToString()
    
                    Case "-"
                        Me._result.Text = (math.Subtract(firstNumber, secondNumber)).ToString()
                    Case "*"
                        Me._result.Text = (math.Multiply(firstNumber, secondNumber)).ToString()
                    Case "/"
                        Me._result.Text = (math.Divide(firstNumber, secondNumber)).ToString()
                    Case Else
                        Me._result.Text = "Choose operator"
    
                End Select
    
            Catch
                Me._result.Text = "Enter valid #"
            End Try
        End Sub
    End Class
    
  12. Choisissez le F5 touche pour exécuter l’application.Choose the F5 key to run the app.

  13. Dans l’application, entrez tous les deux numéros, choisissez une opération, puis le = bouton.In the app, enter any two numbers, choose an operation, and then choose the = button.

    Le résultat correct apparaît.The correct result appears.

    Vous avez correctement créé et utilisé un SDK d’Extension.You have successfully created and used an Extension SDK.

Voir aussiSee also

Procédure pas à pas : Créer un kit de développement à l’aide de C++ Walkthrough: Create an SDK using C++
Procédure pas à pas : Créer un kit de développement à l’aide de JavaScript Walkthrough: Create an SDK using JavaScript
Création d’un Kit de développement logicielCreate a Software Development Kit