Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
Aby utworzyć składnik SimpleMath środowisko wykonawcze systemu Windows
Aby utworzyć przykładową aplikację korzystającą z biblioteki klas
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
Na pasku menu wybierz pozycję Plik>nowy>projekt.
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.
W polu Nazwa określ pozycję SimpleMath, a następnie wybierz przycisk OK .
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.
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); } } }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 .
Na liście Konfiguracja aktywnego rozwiązania wybierz pozycję Wydanie.
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.
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
W menu skrótów dla węzła Rozwiązanie "SimpleMath" wybierz pozycję Dodaj>nowy projekt.
Na liście szablonów rozwiń węzeł Visual C# lub Visual Basic, wybierz węzeł Rozszerzalność , a następnie wybierz szablon Projekt VSIX.
W polu Nazwa określ simpleMathVSIX, a następnie wybierz przycisk OK .
W Eksplorator rozwiązań wybierz element source.extension.vsixmanifest.
Na pasku menu wybierz pozycję Wyświetl>kod.
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>W Eksplorator rozwiązań wybierz projekt SimpleMathVSIX.
Na pasku menu wybierz pozycję Projekt>Dodaj nowy element.
Na liście Wspólnych elementów rozwiń węzeł Dane, a następnie wybierz pozycję Plik XML.
W polu Nazwa określ
SDKManifest.xmlwartość , a następnie wybierz przycisk Dodaj .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.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>W Eksplorator rozwiązań otwórz menu skrótów dla projektu SimpleMathVSIX, wybierz pozycję Dodaj, a następnie wybierz pozycję Nowy folder.
Zmień nazwę folderu na
references.Otwórz menu skrótów dla folderu Odwołania, wybierz pozycję Dodaj, a następnie wybierz pozycję Nowy folder.
Zmień nazwę podfolderu na
commonconfiguration, utwórz podfolder w nim i nazwij podfolderneutral.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\neutralW Eksplorator rozwiązań otwórz menu skrótów dla projektu SimpleMath, a następnie wybierz pozycję Otwórz folder w Eksplorator plików.
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.
W Eksplorator rozwiązań wklej plik do folderu references\commonconfiguration\neutral w projekcie SimpleMathVSIX.
Powtórz poprzedni krok, wklejając plik SimpleMath.pri do folderu redist\commonconfiguration\neutral w projekcie SimpleMathVSIX .
W Eksplorator rozwiązań wybierz pozycję SimpleMath.winmd.
Na pasku menu wybierz pozycję Wyświetl>właściwości (Klawiatura: wybierz klawisz F4).
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.
W Eksplorator rozwiązań powtórz ten proces dla pliku SimpleMath.pri.
W Eksplorator rozwiązań wybierz projekt SimpleMathVSIX.
Na pasku menu wybierz pozycję Kompiluj>simpleMathVSIX.
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.
W Eksplorator plików przejdź do folderu \bin\Release, a następnie uruchom polecenie
SimpleMathVSIX.vsix, aby go zainstalować.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
Na pasku menu wybierz pozycję Plik>nowy>projekt.
Na liście szablonów rozwiń węzeł Visual C# lub Visual Basic, a następnie wybierz węzeł Sklep Windows.
Wybierz szablon Pusta aplikacja , nadaj projektowi nazwę ArithmeticUI, a następnie wybierz przycisk OK .
W Eksplorator rozwiązań otwórz menu skrótów dla projektu ArithmeticUI, a następnie wybierz pozycję Dodaj>odwołanie.
Na liście typów odwołań rozwiń węzeł Windows, a następnie wybierz pozycję Rozszerzenia.
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.W oknie dialogowym Menedżer odwołań zaznacz pole wyboru Biblioteka matematyczna WinRT, a następnie wybierz przycisk OK.
Na pasku menu wybierz pozycję Wyświetl>przeglądarkę obiektów.
Na liście Przeglądaj wybierz pozycję Proste obliczenia matematyczne.
Teraz możesz eksplorować zawartość zestawu SDK.
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>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 #";
}
}
}
}
Wybierz klucz F5, aby uruchomić aplikację.
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.