Gewusst wie: Erstellen eines Software Development Kit (SDK)
Ein SDK (Software Development Kit) ist eine Auflistung von Dateien, die Visual Studio als einzelnes Bezugselement behandelt.Im Dialogfeld werden alle Verweis-Manager SDKs auf, die dem Projekt relevant sind, das das Dialogfeld Verweis-Manager aufruft.Wenn Sie ein SDK einem Projekt hinzufügen, ist der gesamte Inhalt von IntelliSense, Werkzeugkasten, Designer, Objektkatalog, Build, Bereitstellung, Debuggen und Paketen verfügbar.
Es gibt zwei Typen SDKs:
Plattform-SDKs sind erforderliche Komponenten zum Entwickeln von Apps für eine Plattform.Beispielsweise wird das Windows 8 SDK erforderlich, um Windows Store-App zu entwickeln.
Erweiterungs-SDKs sind optionale Komponenten, die eine Plattform erweitern, jedoch nicht für die Entwicklung von Apps für diese Plattform erforderlich.
In den folgenden Abschnitten werden die allgemeine Infrastruktur von SDKs und wie ein Plattform SDK und ein Erweiterung SDK erstellt.
Ziel-Plattform-Moniker
Plattform-SDKs
Erweiterungs-SDKs
Ziel-Plattform-Moniker
Visual Studio 2012 unterstützt zwei neue Eigenschaften:
Ziel-Plattform-Bezeichner (TPIs): Die gültigen Werte dieser Eigenschaft bestehen aus verschiedenen Plattformen, für die Sie Software entwickeln können.Windows ist ein Beispiel einer Plattform.
Ziel-Plattform-Version (TPV): Diese Eigenschaft gibt die Version der Zielplattform.Für Windows 8, ist das TPV 8.0, und die TPIs ist Windows.
Zusammen bilden diese beiden Eigenschaften den Ziel-Plattform-Moniker (TPM), der die Grundlage für Windows 8 und das SDK bildet, die Infrastruktur verweisen.Beispielsweise ist das TPM für Windows 8 "Windows, version=8.0".
Plattform-SDKs
Plattform-SDKs sind erforderlich, um Apps für eine Plattform zu entwickeln.Beispielsweise wird das Windows 8 SDK erforderlich, um Apps für Windows 8 zu entwickeln.
Installation
Alle Plattform-SDKs werden installiert unter HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\@InstallationFolder = [SDK-Stamm].Entsprechend wird das Windows 8 SDK unter HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.0 installiert.
Layout
Plattform-SDKs haben folgendes Layout:
\[InstallationFolder root]
SDKManifest.xml
\References
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Knoten |
Beschreibung |
---|---|
Verweise (Ordner) |
Enthält Binärdateien, die API enthalten, das codiert werden kann für.Diese könnten Assemblys Windows-Metadaten einschließen Dateien oder (WinMD). |
DesignTime-Ordner |
Enthält Dateien, die nur für vor-ausgeführter/Debuggingszeit erforderlich sind.Diese können XML Dokumente, Bibliotheken, Header, Toolboxentwurfszeitbinärdateien, MSBuild-Artefakte einschließen, usw.
Vorsicht
XML Dokumente würde ideal im Ordner \DesignTime platziert, aber XML-Dokumente für Verweise wird weiterhin neben der Verweisdatei in Visual Studio 2012 platziert.Beispielsweise ist für einen Verweis \References\[config]\[arch]\sample.dll das XML-Dokument \References\[config]\[arch]\sample.xml und die lokalisierte Version dieses Dokuments ist \References\[config]\[arch]\[locale]\sample.xml.
|
Konfiguration |
Es kann nur drei Ordner geben: debuggen Sie, Klein- und CommonConfiguration.SDK-Autoren können ihre Dateien unter CommonConfiguration, wenn derselbe Satz von SDK-Dateien genutzt wird, unabhängig von der Konfiguration ein, die der SDK-Consumer abzielt. |
Architekturordner |
Jeder unterstützte Architekturordner kann vorhanden sind.Visual Studio 2012 unterstützt die folgenden Architekturen: x86, x64, ARM und neutral.Hinweis: Win32-Zuordnungen auf x86 und AnyCPU-Zuordnungen auf neutral. In .NET Framework 4.5 wird MSBuild hartcodiert, um nur unter \CommonConfiguration\neutral nach Plattform-SDKs zu suchen. |
SDKManifest.xml |
Diese Datei wird beschrieben, wie Visual Studio das SDK verarbeiten soll.Betrachten Sie das SDK Manifest nach Windows 8:
DisplayNameDer Wert, der den Objektkatalog in der Liste angezeigt wird.
PlatformIdentityDas Vorhandensein dieses Attributs weist Visual Studio und MSBuild mit, dass das SDK ein Plattform SDK ist und dass die Verweise, die davon hinzugefügt werden, nicht lokal kopiert werden sollen.
TargetFrameworkDieses Attribut wird von Visual Studio verwendet, um sicherzustellen, dass nur Projekte, die die gleichen Frameworks wie im Wert dieses Attributs angegeben abzielen, das SDK nutzen können.
MinVSVersionDieses Attribut wird von Visual Studio verwendet, um nur die SDKs zu nutzen, die darauf gelten.
VerweisDieses Attribut muss als nur die Verweise angegeben werden, die Steuerelemente enthalten.Informationen darüber, wie Sie, ob ein Verweis Steuerelemente enthält, finden Sie unter unten angibt.
|
In Visual Studio
Verweis Manager wird berücksichtigen Ziel Plattform Moniker (TPM) und dann ersetzen Eigenschaftswerte in HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\@InstallFolder = [SDK-Stamm] den Speicherort auf einem Datenträger des Platform SDK ermitteln.Der Bezugsmanager wird dann:
Öffnen Sie das SDK Manifest, um zu bestimmen, ob das Plattform SDK zur Visual Studio-Version anwendbar ist, in der der Bezugsmanager aufgerufen wurde und ob das zu Plattform SDK gemäß des Zielframeworks des Projekts anwendbar ist, das den Bezugsmanager aufruft.Wenn das Plattform SDK auf beiden Anzahl anwendbar ist, verwendet der Bezugsmanager die Ziel-Plattform-Bezeichnereigenschaft für den Namen der Registerkarte, in der das SDK aufzulisten, Plattform verweist.Wenn das SDK Plattform nicht auf einem Datenträger gefunden wird, wird die Registerkarte weiterhin, aber der mittlere Bereich wird die Meldung "[] TPIs SDK gefunden wurde nicht auf dem Computer" an.
Listen Sie alle Verweise auf, die unter dem Ordner [InstallFolder root]\references\CommonConfiguration\neutral auf der Registerkarte [TPI] | Core angegeben werden.
Der Benutzer kann die Verweise im Platform SDK ihrem Projekt hinzufügen und sie nutzen im Code, während sie jede Assembly oder WinMD wurden.
Erweiterungs-SDKs
Erweiterungs-SDKs erweitern, eine Plattform jedoch nicht für die Entwicklung von Anwendungen für diese Plattform erforderlich.Beispielsweise erweitern Bing Maps und die Windows Live-SDKs, Windows 8 aber nicht von allen Entwicklern für dieses Betriebssystem erforderlich.
Installation
Erweiterungs-SDKs können in einen von vier Speicherorten gespeichert werden:
\Programme\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs
\Users\[Benutzername]\AppData\Local\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs
In der Projektdatei als <PropertyGroup><SDKReferenceDirectoryRoot>dir1;dir2</SDKReferenceDirectoryRoot></PropertyGroup>, in der dir1 und dir2 alle zwei Speicherorte auf Datenträger identifizieren
HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\[SDKName]\[SDKVersion]\@default = [SDK Stamm] wobei [SDK-Stamm] ist [Pfad zum SDK]\[SDKName]\[SDKVersion]\
Für die ersten drei Stellen werden keine Registrierungsschlüssel benötigt.Sie können das SDK Erweiterung im computerweiten, benutzerspezifische oder benutzerdefinierten Speicherort nur einfügen, und Visual Studio hebt einfach das SDK auf.Wenn keiner dieser Mechanismen geeignet ist, können Sie den benutzerdefinierten Speicherort des SDKs angeben, indem Sie den Registrierungspfad im vierten Speicherort verwenden.
Layout
Erweiterungs-SDKs haben folgendes Layout:
\[ExtensionSDKs root]
\[SDKName]
\[SDKVersion]
SDKManifest.xml
\References
\[config]
\[arch]
\Redist
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Knoten |
Beschreibung |
---|---|
\[SDKName]\[SDKVersion] |
Bildet die Identität des Erweiterung SDKs.Das bedeutet, dass der Name und die Version des Erweiterung SDKs aus den entsprechenden Ordnernamen im Pfad zum SDK-Stamm abgeleitet.MSBuild verwendet diese Identität, um das SDK auf einem Datenträger zu suchen, und Visual Studio zeigt diese Identität Eigenschaften im Fenster und im Bezugsmanager an. |
Verweise (Ordner) |
Die besteht aus Binärdateien, die API enthalten, das codiert werden kann für.Diese könnten Assemblys Windows-Metadaten sein Dateien oder (WinMD). |
Redist-Ordner |
Die besteht aus Dateien, die für die Laufzeit/Debuggen benötigt werden und gepacktes als Teil der Anwendung des Benutzers abrufen möchten.Zwei Regeln gelten:
|
DesignTime-Ordner |
Die besteht aus Dateien, die nur vor-ausgeführte/Debuggingszeit benötigt werden und nicht als Teil der Anwendung des Benutzers gepackt werden sollten.Diese können XML Dokumente, Bibliotheken, Header, Toolboxentwurfszeitbinärdateien, MSBuild-Artefakte sein, u. a.
Vorsicht
Jedes SDK, das für die Konsumierung durch ein systemeigenes Projekt vorgesehen ist, muss eine SDKName PROPS-Datei haben.Der folgende Code zeigt ein Beispiel dieses Typs der Datei an.
Hinweis
XML Dokumente würde ideal im Ordner \DesignTime platziert, aber XML-Dokumente für Verweise wird weiterhin neben der Verweisdatei in Visual Studio 2012 platziert.Beispielsweise ist für einen Verweis \References\[config]\[arch]\sample.dll das XML-Dokument \References\[config]\[arch]\sample.xml und die lokalisierte Version dieses Dokuments ist \References\[config]\[arch]\[locale]\sample.xml.
|
Konfiguration |
Es kann nur drei Ordner geben: debuggen Sie, Klein- und CommonConfiguration.SDK-Autoren können ihre Dateien unter CommonConfiguration, wenn derselbe Satz von SDK-Dateien genutzt werden soll, unabhängig von der Konfiguration platzieren, die vom SDK-Consumer abzielt. |
Architekturordner |
Jeder unterstützte Architekturordner kann vorhanden sind.Visual Studio 2012 unterstützt die folgenden Architekturen: x86, x64, ARM, neutral.Win32-Zuordnungen auf x86 und AnyCPU-Zuordnungen auf neutral. |
SDKManifest.xml |
Diese Datei wird beschrieben, wie Visual Studio das SDK verarbeiten soll.Betrachten Sie das folgende Beispiel-SDK Manifest.
KnotenBeschreibung
DisplayNameDer Wert, der im Bezugsmanager, im Projektmappen-Explorer, im Objektkatalog und in anderen Speicherorten in der Benutzeroberfläche für Visual Studio angezeigt wird.
ProductFamilyNameDer gesamte SDK-Produktname.Beispielsweise gehört das Windows Library für JavaScript (WinJS) SDK SDKs mit dem Namen "Microsoft.WinJS.1.0" und "Microsoft.WinJS.2.0", die derselben Kategorie angehören, der SDK-Produktfamilie "Microsoft.WinJS".Mit diesem Attribut können Visual Studio und MSBuild, um diese Beziehung zu erstellen.Wenn dieses Attribut nicht vorhanden ist, wird der Name der SDK als Produktfamilienname verwendet.
FrameworkIdentityAnwendbar nur auf Windows-Komponenten-Bibliotheken.Der Wert dieses Attributs wird in das Manifest Comsumerthread der App platziert, um Abhängigkeit auf einem oder mehreren Windows-Komponenten-Bibliotheken anzugeben.
TargetFrameworkBewerten Sie verwendet, um festzustellen, welche SDKs im Bezugsmanager und -Toolbox verfügbar sind.Dies kann eine durch Semikolons getrennte Liste von Zielframework-Monikern sein.Wenn mehrere Versionen des gleichen Zielframeworks angegeben sind, verwendet der Bezugsmanager die niedrigste angegebene Version für das Filtern von Zwecken.Wenn beispielsweise ".NET Framework, version=v2.0; .NET Framework, version=v4.0" wird verwendet, Bezugsmanager ".NET Framework, version=v2.0" angegeben.Wenn ein bestimmtes Zielframework-Profil angegeben ist, wird nur dieses Profil vom Bezugsmanager zum Filtern von Zwecken verwendet wird.Wenn beispielsweise "Silverlight, version=v4.0, profile=WindowsPhone" angegeben wird, filtert Bezugsmanager nur auf dem Windows Phone-Profil; ein Projekt, das das vollständige Silverlight 4.0-Framework abzielt, sieht das SDK nicht im Bezugsmanager.
MinVSVersionWird verwendet, um zu filtern, das SDKs oben in jeder Version von Visual Studio veranschaulichen.
AppliesTo
Bewerten Sie verwendet, um festzustellen, welche SDKs im Bezugsmanager verfügbar sind, indem anwendbare Visual Studio-Projekttypen angeben.In Visual Studio 2012 werden neun Werte erkannt: WindowsAppContainer, VisualC, VB, CSharp, WindowsXAML, JavaScript, verwaltet und systemeigene.Der SDK-Autor kann verwenden und ("+ ') oder ("|"), nicht ("! ") Operatoren, um des Bereichs der Projekttypen genau anzugeben, die auf das SDK gelten.
Hinweis
WindowsAppContainer identifiziert Projekte für Windows Store-App.
SupportPrefer32BitUnterstützte Werte sind "true" und "False".Wenn der Wert auf "true" ist, ist das Ergebnis erzielt, als ob das Attribut nicht festgelegt wurden; Das bedeutet, dass die standardmäßige Annahme, dass Prefer32Bit unterstützt wird.Wenn der Wert auf "False" festgelegt wird, gibt einen Fehler Windows Store MSBuild für - Projekte zurück (oder eine Warnung für Tischplattenprojekte) wenn das Projekt, das das SDK verweist, aktiviertes Prefer32Bit verfügt.Weitere Informationen zu Prefer32Bit, finden Sie in einem der folgenden Themen, abhängig von der Programmiersprache:
SupportedArchitecturesEine durch Semikolons getrennte Liste von Architekturen, die das SDK unterstützt.MSBuild zeigt eine Warnung an, wenn die entsprechende SDK-Architektur im Projekt verwendeten nicht unterstützt wird.Wenn dieses Attribut nicht angegeben wird, zeigt MSBuild nie diesen Typ der Warnung an.
SupportsMultipleVersionsWenn dieses Attribut entweder zu Fehler oder zu Warnung festgelegt ist, weist MSBuild an, dass das Projekt mehrere Versionen derselben SDK-Familie nicht verweisen kann.Wenn dieses Attribut vorhanden ist oder nicht, zu Zulassen festgelegt ist, zeigt MSBuild nicht diesen Fehlertyp oder Warnung an.
AppXAnwendbar nur auf Windows-Komponenten-Bibliotheken.Dieser Attributwert gibt den Pfad zu den Anwendungspaketen für die Windows-Komponenten-Bibliothek auf dem Datenträger an, und der Pfad wird zur Registrierungskomponente der Windows-Komponenten-Bibliothek während des Debuggens lokalen übergeben.Die Benennungskonvention für den Dateinamen ist [Unternehmen]. [Produkt]. Architektur []. Konfiguration []. [] .appx Version.Konfiguration und Architektur sind im Attributnamen und im Attributwert optional, wenn sie nicht auf die Windows-Komponenten-Bibliothek gelten.
CopyRedistToSubDirectoryDer SDK-Autor kann bestimmen, wo die Dateien unter dem Ordner \redist relativ zum Anwendungspaketstamm (das heißt der Paketstandort, der im Assistenten zum Erstellen von App-Paketen ausgewählt wurde) und Ablauflayoutstamm kopiert werden.Der Standardspeicherort ist der Stamm des Anwendungspakets und des F5-Layouts.
DependsOnGetrennte Liste von SDK-Identitäten, die die SDKs definieren, von denen dieses SDK abhängt.Dieses Attribut wird im Detailbereich des Bezugsmanagers.
MoreInfoEnthält die URL zur Webseite, die den Consumer des SDKs mit Prozessleitfaden bereitstellt.Dieser Wert wird im mehr Informationslink im rechten Bereich des Bezugsmanagers verwendet.
DateiverweisDieses Attribut muss nur für diese Assembly/WinMD-Verweise angegeben werden, die entweder Steuerelemente enthalten oder systemeigenen WinMD sind, für den der Registrierungstyp angegeben werden muss.
Registrierungs-TypDieses Attribut gibt die WinMD-Registrierung im Anwendungsmanifest an und ist für systemeigene WinMD erforderlich, der eine Entsprechungsimplementierung DLL verfügt.
Toolbox
In der folgenden Tabelle werden die unterstützten Attribute.
Platzierung in der ToolboxSDKManifest.xml-Beispiel (gilt zu einem Verweis - WinMD oder DLL)
Listen Sie alle Steuerelemente auf und fügen Sie sie in der Standardkategorie der Toolbox.
Listen Sie alle Steuerelemente auf und platzieren Sie es unter einen bestimmten Kategorienamen.
Listen Sie bestimmte Steuerelemente auf und platzieren Sie es unter bestimmten Kategorienamen.
Listen Sie bestimmte Steuerelemente auf und fügen Sie sie unter anderen Kategorienamen in Blend und Visual Studio.
Listen Sie bestimmte andere Steuerelemente als in Blend und Visual Studio auf.
Listen Sie bestimmte Steuerelemente auf und legen Sie sie unter dem allgemeinen Pfad Visual Studio oder nur in die alle Kontrollen-Gruppe.
Listen Sie bestimmte Steuerelemente auf und werden nur ein bestimmtes an, das in ChooseItems ohne sie jedoch in der Toolbox festgelegt ist.
|
In Visual Studio
Verweis Manager wird berücksichtigen Ziel Plattform Moniker (TPM) und dann ersetzen Eigenschaftswerte in \Programme\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs, \Users\[username]\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs und HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\ den Speicherort auf einem Datenträger der Erweiterungs-SDKs ermitteln.
Der Bezugsmanager öffnet dann das SDK Manifest jedes Erweiterung SDKs, zu bestimmen, ob die Erweiterung SDK zur Visual Studio-Version anwendbar ist, in der der Bezugsmanager aufgerufen wurde, ob die Erweiterung SDK gemäß des Zielframeworks des Projekts anwendbar ist, das den Bezugsmanager hat, und ob die AppliesTo-Attributwerte die angekündigten Funktionen des Projektsystems übereinstimmen, das den Bezugsmanager aufgerufen wurde.Wenn die Erweiterung SDK auf allen Anzahl anwendbar ist, zeigt der Bezugsmanager das DisplayName, die Version und die SDK-Abhängigkeiten an und füllt dann den mehr Informationslink ordnungsgemäß gemäß des Manifests Erweiterung SDK auf.
Ein Erweiterung SDK wird als einzelner Eintrag im Bezugsmanager.Sobald hinzugefügt, wird es als einzelner Knoten in Projektmappen-Explorer für verwaltete App und Windows Store-App, die für Windows mit JavaScript erstellt werden.Das SDK wird auch als einzelner Eintrag in den Eigenschaftenseiten für Visual C++-Projekte.Der Benutzer muss jetzt keine weiteren Aktionen ausführen.Der Benutzer wird für IntelliSense, Toolbox, Designer, Objektkatalog, Build, Bereitstellung, Debuggen und Paketen festgelegt.
Hinweis |
---|
|
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Erstellen eines SDK mit C++
Exemplarische Vorgehensweise: Erstellen eines SDK mit C#