Udostępnij przez


Przewodnik: tworzenie zestawu SDK przy użyciu języka C# lub Visual Basic

W tym przewodniku dowiesz się, jak utworzyć prosty zestaw SDK biblioteki matematycznej przy użyciu języka Visual C#, a następnie spakować zestaw SDK jako rozszerzenie programu Visual Studio (VSIX). Wykonasz następujące procedury:

Wymagania wstępne

Aby wykonać czynności opisane w tym przewodniku, należy zainstalować zestaw Visual Studio SDK. Aby uzyskać więcej informacji, zobacz Visual Studio SDK.

Aby utworzyć składnik SimpleMath środowisko wykonawcze systemu Windows

  1. Na pasku menu wybierz pozycję Plik>nowy>projekt.

  2. Na liście szablonów rozwiń węzeł Visual C# lub Visual Basic, wybierz węzeł Sklep Windows, a następnie wybierz szablon Składnik środowisko wykonawcze systemu Windows.

  3. W polu Nazwa określ pozycję SimpleMath, a następnie wybierz przycisk OK .

  4. W Eksplorator rozwiązań otwórz menu skrótów dla węzła projektu SimpleMath, a następnie wybierz pozycję Właściwości.

  5. Zmień nazwę Class1.cs na Arithmetic.cs i zaktualizuj ją tak, aby była zgodna z następującym kodem:

    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. W Eksplorator rozwiązań otwórz menu skrótów dla węzła Rozwiązanie "SimpleMath", a następnie wybierz pozycję Configuration Manager.

    Zostanie otwarte okno dialogowe Configuration Manager .

  7. Na liście Konfiguracja aktywnego rozwiązania wybierz pozycję Wydanie.

  8. W kolumnie Konfiguracja sprawdź, czy wiersz SimpleMath ma wartość Release (Wydanie), a następnie wybierz przycisk Zamknij , aby zaakceptować zmianę.

    Ważne

    Zestaw SDK składnika SimpleMath zawiera tylko jedną konfigurację. Ta konfiguracja musi być kompilacją wydania lub aplikacjami, które używają składnika, nie przejdą certyfikacji dla sklepu Microsoft Store.

  9. W Eksplorator rozwiązań otwórz menu skrótów dla węzła projektu SimpleMath, a następnie wybierz pozycję Kompiluj.

Aby utworzyć projekt rozszerzenia SimpleMathVSIX

  1. W menu skrótów dla węzła Rozwiązanie "SimpleMath" wybierz pozycję Dodaj>nowy projekt.

  2. Na liście szablonów rozwiń węzeł Visual C# lub Visual Basic, wybierz węzeł Rozszerzalność , a następnie wybierz szablon Projekt VSIX.

  3. W polu Nazwa określ simpleMathVSIX, a następnie wybierz przycisk OK .

  4. W Eksplorator rozwiązań wybierz element source.extension.vsixmanifest.

  5. Na pasku menu wybierz pozycję Wyświetl>kod.

  6. Zastąp istniejący kod XML następującym kodem 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 Eksplorator rozwiązań wybierz projekt SimpleMathVSIX.

  8. Na pasku menu wybierz pozycję Projekt>Dodaj nowy element.

  9. Na liście Wspólnych elementów rozwiń węzeł Dane, a następnie wybierz pozycję Plik XML.

  10. W polu Nazwa określ SDKManifest.xmlwartość , a następnie wybierz przycisk Dodaj .

  11. W Eksplorator rozwiązań otwórz menu skrótów dla SDKManifest.xmlpozycji , wybierz pozycję Właściwości, a następnie zmień wartość właściwości Include in VSIX na True.

  12. Zastąp zawartość pliku następującym kodem 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. W Eksplorator rozwiązań otwórz menu skrótów dla projektu SimpleMathVSIX, wybierz pozycję Dodaj, a następnie wybierz pozycję Nowy folder.

  14. Zmień nazwę folderu na references.

  15. Otwórz menu skrótów dla folderu Odwołania, wybierz pozycję Dodaj, a następnie wybierz pozycję Nowy folder.

  16. Zmień nazwę podfolderu na commonconfiguration, utwórz podfolder w nim i nazwij podfolder neutral.

  17. Powtórz poprzednie cztery kroki, tym razem zmieniając nazwę pierwszego folderu na redist.

    Projekt zawiera teraz następującą strukturę folderów:

    references\commonconfiguration\neutral
    redist\commonconfiguration\neutral
    
  18. W Eksplorator rozwiązań otwórz menu skrótów dla projektu SimpleMath, a następnie wybierz pozycję Otwórz folder w Eksplorator plików.

  19. W Eksplorator plików przejdź do folderu bin\Release, otwórz menu skrótów dla pliku SimpleMath.winmd, a następnie wybierz pozycję Kopiuj.

  20. W Eksplorator rozwiązań wklej plik do folderu references\commonconfiguration\neutral w projekcie SimpleMathVSIX.

  21. Powtórz poprzedni krok, wklejając plik SimpleMath.pri do folderu redist\commonconfiguration\neutral w projekcie SimpleMathVSIX .

  22. W Eksplorator rozwiązań wybierz pozycję SimpleMath.winmd.

  23. Na pasku menu wybierz pozycję Wyświetl>właściwości (Klawiatura: wybierz klawisz F4).

  24. W oknie Właściwości zmień właściwość Akcja kompilacji na Zawartość, a następnie zmień właściwość Include in VSIX na True.

  25. W Eksplorator rozwiązań powtórz ten proces dla pliku SimpleMath.pri.

  26. W Eksplorator rozwiązań wybierz projekt SimpleMathVSIX.

  27. Na pasku menu wybierz pozycję Kompiluj>simpleMathVSIX.

  28. W Eksplorator rozwiązań otwórz menu skrótów dla projektu SimpleMathVSIX, a następnie wybierz pozycję Otwórz folder w Eksplorator plików.

  29. W Eksplorator plików przejdź do folderu \bin\Release, a następnie uruchom polecenie SimpleMathVSIX.vsix , aby go zainstalować.

  30. Wybierz przycisk Zainstaluj, poczekaj na zakończenie instalacji, a następnie uruchom ponownie program Visual Studio.

Aby utworzyć przykładową aplikację korzystającą z biblioteki klas

  1. Na pasku menu wybierz pozycję Plik>nowy>projekt.

  2. Na liście szablonów rozwiń węzeł Visual C# lub Visual Basic, a następnie wybierz węzeł Sklep Windows.

  3. Wybierz szablon Pusta aplikacja , nadaj projektowi nazwę ArithmeticUI, a następnie wybierz przycisk OK .

  4. W Eksplorator rozwiązań otwórz menu skrótów dla projektu ArithmeticUI, a następnie wybierz pozycję Dodaj>odwołanie.

  5. Na liście typów odwołań rozwiń węzeł Windows, a następnie wybierz pozycję Rozszerzenia.

  6. W okienku szczegółów wybierz rozszerzenie Biblioteka matematyczna WinRT.

    Pojawią się dodatkowe informacje o zestawie SDK. Możesz wybrać link Więcej informacji , aby otworzyć https://msdn.microsoft.com/plik , jak określono w pliku SDKManifest.xml wcześniej w tym przewodniku.

  7. W oknie dialogowym Menedżer odwołań zaznacz pole wyboru Biblioteka matematyczna WinRT, a następnie wybierz przycisk OK.

  8. Na pasku menu wybierz pozycję Wyświetl>przeglądarkę obiektów.

  9. Na liście Przeglądaj wybierz pozycję Proste obliczenia matematyczne.

    Teraz możesz eksplorować zawartość zestawu SDK.

  10. W Eksplorator rozwiązań otwórz plik MainPage.xaml i zastąp jego zawartość następującym kodem 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. Zaktualizuj MainPage.xaml.cs , aby pasować do następującego kodu:

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. Wybierz klucz F5, aby uruchomić aplikację.

  2. W aplikacji wprowadź dowolne dwie liczby, wybierz operację, a następnie wybierz = przycisk.

    Zostanie wyświetlony prawidłowy wynik.

    Pomyślnie utworzono zestaw SDK rozszerzenia i użyto go.