Jak: Tworzenie zestawu Software Development Kit
Zestaw software development kit (SDK) to zbiór plików, Visual Studio traktuje jako jednostki odniesienia pojedynczy.Reference Manager okno dialogowe wyświetla listę wszystkich SDK, które odnoszą się do projektu, który wywołuje Reference Manager okno dialogowe.Po dodaniu SDK do projektu, całej zawartości są dostępne za pośrednictwem technologii IntelliSense, Przybornik, projektanci, przeglądarka obiektów, budowania, wdrażania, debugowanie i pakowania.
Istnieją dwa rodzaje SDK:
SDK platformy są obowiązkowe składników do tworzenia aplikacji dla platformy.Na przykład Windows 8 zestawu SDK jest wymagane do rozwoju Windows Store aplikacji.
Rozszerzenie SDK są składniki opcjonalne, które Rozszerzanie platformy, ale nie są obowiązkowe dla rozwoju aplikacji do tej platformy.
W poniższych sekcjach opisano ogólna infrastruktura SDK i jak utworzyć zestaw SDK platformy i rozszerzenie zestawu SDK.
Moniker platformy docelowej
Platforma SDK
Rozszerzenie SDK
Moniker platformy docelowej
Visual Studio 2012obsługuje dwie nowe właściwości:
Docelowa platforma identyfikator (TPI): prawidłowe wartości tej właściwości składają się z różnych platformach, dla których użytkownik może tworzyć oprogramowanie.System Windows jest przykładem platformy.
Docelowa wersja platformy (TPV): Ta właściwość określa wersję platformy docelowej.Na przykład dla Windows 8, TPV jest 8.0 i TPI jest system Windows.
Te dwie właściwości tworzą razem docelowej platformy Moniker (TPM), który stanowi podstawę dla Windows 8 i zestaw SDK odwoływania się do infrastruktury.Na przykład modułu TPM do Windows 8 jest "systemu Windows, wersja = 8.0".
Platforma SDK
Mają obowiązek rozwijać aplikacje dla platformy SDK platformy.Na przykład Windows 8 zestawu SDK jest wymagane rozwijać aplikacje dla Windows 8.
Instalacja
Wszystkie platformy SDK zostaną zainstalowane w HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\@InstallationFolder = [SDK główny].W związku z tym Windows 8 w HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.0 zainstalowano zestaw SDK.
Układ
Platforma SDK będą miały następujący układ:
\[InstallationFolder root]
SDKManifest.xml
\References
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Węzeł |
Opis |
---|---|
Odwołania do folderu |
Zawiera pliki binarne, które zawierają interfejsów API, które mogą być kodowane przed.Te mogą zawierać pliki metadanych systemu Windows (WinMD) lub zespoły. |
DesignTime folder |
Zawiera pliki, które są potrzebne tylko w czasie łączenia przed-bieg/debugowania.Mogą być to dokumenty XML, bibliotek, nagłówki, pliki binarne projektowania przybornik, MSBuild artefakty i tak dalej
Przestroga
Dokumenty XML najlepiej byłoby, gdyby znalazłyby się w folderze \DesignTime, ale dokumenty XML dla odwołania będzie nadal umieścić obok pliku odwołania w Visual Studio 2012.Na przykład doc XML dla \References\[config]\[arch]\sample.dll odwołanie będzie \References\[config]\[arch]\sample.xml i zlokalizowaną wersję tego dokumentu będzie \References\[config]\[arch]\[locale]\sample.xml.
|
Folder konfiguracyjny |
Może istnieć tylko trzy foldery: debugowania, sprzedaży detalicznej i CommonConfiguration.Autorzy SDK można umieścić ich w folderze CommonConfiguration, jeśli ten sam zestaw SDK pliki powinny być spożywane, niezależnie od konfiguracji, skierowanej do konsumenta zestawu SDK. |
Architektura folderu |
Może istnieć dowolnego folderu obsługiwane architektury.Visual Studio 2012obsługuje następujących architektur: x 86, x 64, ARM i neutralny.Uwaga: Mapuje Win32 x 86 i AnyCPU mapuje do neutralnej. W .NET Framework 4.5, program MSBuild jest zakodowana szukać tylko w obszarze \CommonConfiguration\neutral SDK platformy. |
SDKManifest.xml |
Ten plik zawiera opis, jak Visual Studio powinni spożywać zestawu SDK.Szukaj w manifeście zestawu SDK dla Windows 8:
DisplayNameWartość, która przeglądarka obiektów wyświetla na liście przeglądania.
PlatformIdentityIstnienie ten atrybut informuje Visual Studio i MSBuild to zestaw SDK platformy SDK i których odwołania dodane z niego nie należy kopiować lokalnie.
TargetFrameworkTen atrybut jest używany przez program Visual Studio, aby zapewnić, że tylko projekty nastawione na tym samym RAM jako wartość tego atrybutu mogą spożywać zestawu SDK.
MinVSVersionTen atrybut jest używany przez program Visual Studio zużyje SDK, które go dotyczą.
Informacje o odwołaniachAtrybut ten musi być zdefiniowane tylko odwołań, które zawierają formanty.Aby uzyskać informacje dotyczące sposobu określania, czy odwołanie zawiera formanty poniżej.
|
W programie Visual Studio
Reference Manager będzie wyglądać w docelowej Moniker platformy (TPM) i następnie zastąpić wartości właściwości w HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\@InstallFolder = [SDK główny] Aby ustalić lokalizację dysku w zestawie SDK platformy.Następnie będzie Reference Manager:
Otwórz Manifest zestawu SDK, aby określić, czy platformy SDK ma zastosowanie do wersji Visual Studio, w którym została przywołana Reference Manager i czy zestaw SDK platformy ma zastosowanie, jak na ukierunkowane ramach projektu, powołując się na Reference Manager.Jeśli platform SDK znajduje zastosowanie w obydwu obliczeniach, Reference Manager jest używana właściwość identyfikator platformy docelowej dla nazwy na karcie w wyliczanej odwołania do zestawu SDK platformy.Jeśli Platforma SDK nie znajduje się na dysku, karcie nadal będą wyświetlane, ale środkowym okienku pojawi się komunikat "SDK [TPI] nie można odnaleźć na komputerze".
Wyliczyć wszystkie odniesienia określony w folderze \references\CommonConfiguration\neutral [InstallFolder główny] w [TPI] | Na karcie Core.
Użytkownika można dodawać odwołania w zestawie SDK platformy do odpowiednich projektów i zużywają je w kodzie, jak w przypadku dowolnego zestawu lub WinMD.
Rozszerzenie SDK
Rozszerzenie SDK rozszerzyć platformę, ale nie są obowiązkowe w przypadku tworzenia aplikacji na tej platformie.Na przykład rozszerzyć Bing Maps i Windows Live SDK Windows 8 , ale nie są wymagane przez wszystkich deweloperów dla tego systemu operacyjnego.
Instalacja
Rozszerzenie SDK można umieścić w jednym z czterech miejscach:
\ExtensionSDKs \v [TPV] SDKs\ [TPI] \Program Files\Microsoft
\ExtensionSDKs \v [TPV] \Users\[USERNAME]\AppData\Local\Microsoft SDKs\ [TPI]
W pliku projektu w <PropertyGroup><SDKReferenceDirectoryRoot>dir1;dir2</SDKReferenceDirectoryRoot></PropertyGroup> której dir1 i dir2 identyfikuje dowolne dwie lokalizacje na dysku
HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\[SDKName]\[SDKVersion]\@default = [SDK główny] gdzie [SDK główny] [ścieżka do zestawu SDK] \ [SDKName] \ [SDKVersion] \
Dla pierwszych trzech lokalizacji potrzebne są żadne klucze rejestru.Rozszerzenie zestawu SDK można upuszczać tylko w lokalizacji komputera, użytkownika lub niestandardowych i Visual Studio po prostu odbierze zestawu SDK.Jeśli żaden z tych procedur jest odpowiedni, można określić lokalizację niestandardowego zestawu SDK dla usługi przy użyciu ścieżki rejestru w czwartym lokalizacji.
Układ
Rozszerzenie SDK będą miały następujący układ:
\[ExtensionSDKs root]
\[SDKName]
\[SDKVersion]
SDKManifest.xml
\References
\[config]
\[arch]
\Redist
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Węzeł |
Opis |
---|---|
\[SDKName]\[SDKVersion] |
Tworzy tożsamości zestawu SDK dla rozszerzenia.Innymi słowy nazwę i wersję zestawu SDK rozszerzenie pochodzi od nazwy folderu w ścieżce do głównego zestawu SDK.Program MSBuild używa tej tożsamości w celu wyszukania zestawu SDK na dysku i Visual Studio Wyświetla tej tożsamości w Właściwości okno i Reference Manager. |
Odwołania do folderu |
Składa się z plików binarnych, które zawierają interfejsów API, które mogą być kodowane przed.Mogą to być pliki metadanych systemu Windows (WinMD) lub zespołów. |
Folderze Redist |
Składa się z plików, które są potrzebne do debugowania/runtime i powinny uzyskać pakowane w ramach aplikacji przez użytkownika.Stosuje się dwie reguły:
|
DesignTime folder |
Składa się z plików, które są tylko potrzebne przed-bieg/debugowanie czasu i nie powinno być pakowane w ramach aplikacji przez użytkownika.Mogą to być dokumenty XML, bibliotek, nagłówki, pliki binarne projektowania przybornik, MSBuild artefakty i tak dalej.
Przestroga
Wszelkie SDK, ten jest przeznaczony do spożycia przez macierzysty projekt musi mieć SDKName.props pliku.Poniższy kod pokazuje przykład tego typu pliku.
Uwaga
Dokumenty XML najlepiej byłoby, gdyby znalazłyby się w folderze \DesignTime, ale dokumenty XML dla odwołania będzie nadal umieścić obok pliku odwołania w Visual Studio 2012.Na przykład doc XML dla \References\[config]\[arch]\sample.dll odwołanie będzie \References\[config]\[arch]\sample.xml i zlokalizowaną wersję tego dokumentu będzie \References\[config]\[arch]\[locale]\sample.xml.
|
Folder konfiguracyjny |
Może istnieć tylko trzy foldery: debugowania, sprzedaży detalicznej i CommonConfiguration.Autorzy SDK można umieścić ich w folderze CommonConfiguration, przy tym samym zestawie plików zestawu SDK powinny być spożywane, niezależnie od konfiguracji, kierowane przez konsumenta zestawu SDK. |
Architektura folderu |
Może istnieć dowolnego folderu obsługiwane architektury.Visual Studio 2012obsługuje następujących architektur: x 86, x 64, ARM, w położeniu neutralnym.Mapuje Win32 x 86 i AnyCPU mapuje do neutralnej. |
SDKManifest.xml |
Ten plik zawiera opis, jak Visual Studio powinni spożywać zestawu SDK.Spójrz na następujący przykładowy Manifest zestawu SDK.
WęzełOpis
DisplayNameWartość, która pojawia się w Reference Manager, Solution Explorer, przeglądarka obiektów i innych miejscach w interfejsie użytkownika programu Visual Studio.
ProductFamilyNameOgólny SDK nazwę produktu.Na przykład Biblioteka systemu Windows dla języka JavaScript (WinJS) SDK Wysyłka SDK o nazwie "Microsoft.WinJS.1.0" i "Microsoft.WinJS.2.0", które należą do tej samej rodziny SDK produktów rodziny, "Microsoft.WinJS".Atrybut ten pozwala Visual Studio i MSBuild do nawiązywania danego połączenia.Jeśli ten atrybut nie istnieje, nazwa zestawu SDK jest używana jako nazwa rodziny produktów.
FrameworkIdentityDotyczy tylko bibliotek składnika systemu Windows.Wartość tego atrybutu jest umieszczana w manifest zużywające aplikacji, aby wskazać zależność od jednego lub więcej bibliotek składnika systemu Windows.
TargetFrameworkWartość używana do określenia, które SDK, dostępnych w Reference Manager i przybornik.Może to być rozdzielaną średnikami listę monikerów Framework docelowej.Jeśli podano kilka wersji tych samych ramach docelowej, Reference Manager użyje najniższą określonej wersji do celów filtrowania.Na przykład jeśli ".NET Framework, wersja = v2.0; .NET Framework, wersja = v4.0 "jest określony, Reference Manager użyje".NET Framework, wersja = v2.0 ".Jeżeli określono określonego profilu ramy docelowej, tylko tego profilu posłuży Reference Manager do filtrowania celów.Na przykład, kiedy "Silverlight, wersja = v4.0, profil = WindowsPhone" jest określony, Reference Manager będzie filtrować tylko w profilu Windows Phone; projektu-określanie wartości docelowej pełnej Framework 4.0 Silverlight nie będą widoczne w Menedżerze odwołanie zestawu SDK.
MinVSVersionUżywana do filtrowania, który SDK pojawiają się w każdej wersji programu Visual Studio.
Element AppliesTo
Wartość używana do określenia, które SDK są dostępne w Menedżerze odnośników przez określenie mających zastosowanie typów projektów programu Visual Studio.W Visual Studio 2012, są rozpoznawane dziewięć wartości: WindowsAppContainer, WindowsXAML, języku VisualC, języka CSharp, JavaScript, VB, zarządzane i w trybie macierzystym.Autor SDK można używać i ("+"), lub ("|"), a nie ("!") podmiotom gospodarczym określić dokładnie zakres typów projektów, które mają zastosowanie do zestawu SDK.
Uwaga
WindowsAppContainer identyfikuje projekty dla Windows Store aplikacji.
SupportPrefer32BitObsługiwane wartości to "True" i "False".Jeśli wartość jest ustawiona wartość "true", wynik jest taka sama jak gdyby nie były ustawione atrybut; założenie domyślny jest czy Prefer32Bit jest obsługiwana.Jeśli wartość jest równa "False", program MSBuild zwraca błąd dla Windows Store projektów (lub ostrzeżenie dla projektów na stacji roboczej) Jeśli projektu, do którego odwołuje się do zestawu SDK ma włączony Prefer32Bit.Aby uzyskać więcej informacji o Prefer32Bit zostać wyświetlony jeden z następujących tematów, w zależności od języka programowania:
SupportedArchitecturesRozdzieloną średnikami listę architektur, które obsługuje zestawu SDK.Program MSBuild wyświetlane jest ostrzeżenie, jeśli ukierunkowane architektura SDK w projekcie zużywające nie jest obsługiwana.Jeśli ten atrybut nie jest określony, program MSBuild nigdy nie wyświetla tego typu ostrzeżenia.
SupportsMultipleVersionsJeśli ten atrybut jest ustawiony na o lub Ostrzeżenie o, MSBuild wskazuje, że tego samego projektu nie może odwoływać się wielu wersji tej samej rodziny zestawu SDK.Jeśli ten atrybut nie istnieje lub jest ustawiona na Zezwalaj na, program MSBuild nie wyświetla tego rodzaju błąd lub ostrzeżenie.
ApXDotyczy tylko bibliotek składnika systemu Windows.Wartość atrybutu określa ścieżkę do pakietów aplikacji dla biblioteki składników systemu Windows na dysku, a ścieżka jest przekazywana do elementu rejestracji biblioteki składników systemu Windows podczas debugowania lokalnych.Konwencja nazewnictwa dla nazwy pliku jest [przedsiębiorstwo].Produktu [product].[Architektura].[Configuration]..Appx [version].Koder-dekoder architektura i konfiguracja są opcjonalne w nazwę atrybutu i wartość atrybutu, jeśli nie można ich stosować do biblioteki składników systemu Windows.
CopyRedistToSubDirectoryAutor SDK można określić, gdzie pliki w folderze \redist uzyskać kopiowane względem katalogu głównego aplikacji pakietu (to znaczy Lokalizacja pakietu wybrane w Kreatorze tworzenia pakietu aplikacji) i katalog główny układ runtime.Domyślną lokalizacją jest katalog główny pakietu aplikacji oraz F5 układ.
DependsOnLista tożsamości zestawu SDK, które definiują SDK, od których zależy ten zestaw SDK.Ten atrybut jest wyświetlany w okienku szczegółów Reference Manager.
MoreInfoZawiera adres URL do strony sieci Web, który daje konsumentom SDK wskazówek.Ta wartość jest używana w łącze więcej informacji, w prawym okienku Reference Manager.
Odwołanie do plikuAtrybut ten musi być określona dla tylko te odwołania zestawu/WinMD, które zawierają formanty lub są WinMD macierzystego, dla którego należy określić typ rejestracji.
Typ rejestracjiTen atrybut określa rejestracji WinMD w manifeście aplikacji i jest wymagany dla WinMD macierzystego, który ma implementację odpowiednikiem biblioteki DLL.
Przybornik
W poniższej tabeli opisano atrybuty obsługiwane.
Położenie w przybornikuPrzykład SDKManifest.xml (stosuje się do wszelkich odniesienia-WinMD lub DLL)
Wyliczyć wszystkie formanty i umieścić je w przyborniku domyślnej kategorii.
Wyliczyć wszystkie formanty i umieścić je pod nazwą konkretnej kategorii.
Wyliczyć określonych kontroli i umieścić je pod nazwami określonej kategorii.
Wyliczyć określonych kontroli i umieścić je w obszarze nazw różnych kategorii w mieszanego i Visual Studio.
Wyliczanie określonych kontroli inaczej w mieszanego i Visual Studio.
Wyliczyć określonych kontroli i umieścić je w ścieżce Visual Studio wspólnej lub tylko w grupie wszystkie formanty.
Wyliczyć określonych kontroli i Pokaż tylko określona grupa w ChooseItems bez nich w przyborniku.
|
W programie Visual Studio
Reference Manager będzie wyglądać w docelowej Moniker platformy (TPM) i następnie zastąpić wartości właściwości w \ExtensionSDKs \v [TPV] SDKs\ [TPI] \Program Files\Microsoft, \Users\[username]\Microsoft SDKs\ [TPI] \v [TPV] \ExtensionSDKs i \ExtensionSDKs\ \v [TPV] SDKs\ HKLM\Software\Microsoft\Microsoft [TPI] Aby ustalić lokalizację dysku SDK rozszerzenie.
Reference Manager otworzy się następnie Manifest zestawu SDK SDK każdego rozszerzenia, aby ustalić, czy SDK rozszerzenie ma zastosowanie do wersji Visual Studio, w którym została przywołana Reference Manager, czy SDK rozszerzenie ma zastosowanie zgodnie z ramami ukierunkowane projektu, która wywołała Reference Manager i czy wartości atrybutu element AppliesTo pasują do siebie anonsowanego możliwości systemu projektu, która wywołała Reference Manager.Jeśli w zestawie SDK rozszerzenie ma zastosowanie pod każdym względem, Reference Manager będzie pokazać zależności DisplayName, wersji i zestaw SDK, a następnie wypełnić łącze więcej informacji, jak poprawnie na rozszerzenie Manifest zestawu SDK.
SDK rozszerzenie pojawia się jako pojedynczy wpis w Menedżerze odnośników.Po dodaniu, jest on wyświetlany jako pojedynczy węzeł w Solution Explorer dla zarządzanych aplikacji i Windows Store aplikacje zaprojektowane dla systemu Windows przy użyciu języka JavaScript.Zestaw SDK jest również wyświetlany jako pojedynczy wpis projektów Visual C++ można znaleźć na stronach właściwości.Użytkownik obecnie nie musi podejmować dalszych działań.Użytkownik jest ustawiona dla IntelliSense, przybornik, projektantów, obiekt przeglądarki, budowania, wdrażania, debugowanie i pakowania.
[!UWAGA]
Na podstawie konfiguracji projektu ukierunkowane i architektura, Visual Studio wybiera odwołań z najmniej szczegółowych do najbardziej szczegółowy.Na przykład jeśli ukierunkowane Konfiguracja SDK jest debugowania i ukierunkowane architektura SDK jest x 86, Visual Studio wyliczy wszystkie odniesienia, począwszy od \references\commonconfiguration\neutral, a następnie \references\commonconfiguration\x86, a następnie \references\debug\neutral, a na końcu \references\debug\x86.Go następnie usunie wszystkie duplikaty specyficzne mniej i przekazuje wszystkie odwołania do kompilatora dla IntelliSense.Ten sposób zbierania odwołania pozwala autorowi SDK elastyczność nie konieczności powielania ich odwołań w wielu folderach \configuration\architecture.
Jeśli projekt odwołuje się do zestawu SDK, która zależy od innego zestawu SDK, Visual Studio nie będzie automatycznie zużywać drugiego zestawu SDK.Użytkownik musi ręcznie dodać odwołanie do drugiego zestawu SDK.Aby pomóc użytkownikowi wywnioskowanie zależności zestawu SDK, w oknie dialogowym Reference Manager, gdy SDK jest określony na karcie rozszerzenia, okienko szczegółów wyświetla nazwę i wersję zestawu SDK, i (jeśli jest to zestaw SDK, zależy od innego zestawu SDK) Nazwa zależności zestawu SDK.Gdy zależności zestawu SDK nie są spełnione, program MSBuild zwraca ostrzeżenie, które monituje użytkownika, aby dodać zależności.
FrameworkIdentity: Visual Studio szuka pierwszej FrameworkIdentity-[config]-[arch], a następnie FrameworkIdentity-[config], a następnie FrameworkIdentity-[arch], a następnie FrameworkIdentity.Gdy znajdzie dopasowanie, rejestruje wartość atrybutu dopasowania.
ApX: Program rozpoznawania nazw SDK próbuje wybrać najbardziej konkretnego atrybutu ApX na architekturę; preferencji w kolejności malejącej: ApX-[config]-[arch] (lub ApX-[config] w przypadku pozycji neutralnej), następnie ApX-[arch], a na końcu apx.Na przykład, jeżeli Manifest zestawu SDK określono następujące atrybuty ApX: "ApX x 86", "ApX debugowania x 86", "ApX x 64", "ApX-ARM", "ApX-ITA" i "ApX" i projektu kierowania debugowania i x 86, program rozpoznawania nazw SDK propozycje "ApX debugowania x 86", "ApX x 64", "ApX-ARM", "ApX-ITA" i "ApX".
Szablon projektu, który odwołuje się do zestawu SDK należy określić odwołanie zestawu SDK w następujący sposób:
<ItemGroup> <SDKReference Include="MySDK, Version=1.0"> <Name>My SDK</Name> </SDKReference> </ItemGroup>
Zobacz też
Zadania
Instruktaż: Tworzenie zestawu SDK, przy użyciu języka C++
Instruktaż: Tworzenie zestawu SDK, przy użyciu języka C#