Procedura: creare una kit di sviluppo software
Un software development kit (SDK) è una raccolta di file che Visual Studio considera come un singolo elemento di riferimento.La finestra di dialogo Gestione riferimenti vengono elencati tutti gli SDK relative al progetto che richiama la finestra di dialogo Gestione riferimenti.Quando si aggiunge un SDK a un progetto, tutti contenuti sono disponibili con IntelliSense, Casella degli strumenti, finestre di progettazione, Visualizzatore oggetti, compilazione, distribuzione, debug e comprimere.
Esistono due tipi di SDK:
I Platform SDK sono componenti necessari per sviluppare applicazioni per la piattaforma.Ad esempio, Windows 8 SDK è necessario per sviluppare applicazioni di Windows Store.
L'estensione SDK è componenti facoltativi che estendono una piattaforma non è obbligatoria per lo sviluppo di applicazioni per la piattaforma.
Nelle sezioni seguenti vengono descritti l'infrastruttura generale degli SDK e come creare una piattaforma SDK e un'estensione SDK.
Moniker della piattaforma di destinazione
Platform SDK
Estensione SDK
Moniker della piattaforma di destinazione
Visual Studio 2012 supporta due nuove proprietà:
Identificatore (TPI) la piattaforma di destinazione: I valori validi di questa proprietà sono costituiti da diverse piattaforme per il quale è possibile sviluppare il software.Le finestre sono un esempio di una piattaforma.
Versione (TPV) la piattaforma di destinazione: Questa proprietà identifica la versione della piattaforma di destinazione.Ad esempio, per Windows 8, il TPV è 8,0 e le TPI è windows.
Insieme, queste due proprietà formano il moniker (TPM) la piattaforma di destinazione, che costituisce la base per Windows 8 e un'infrastruttura di riferimento SDK.Ad esempio, il TPM per Windows 8 è "windows, version=8.0".
Platform SDK
I Platform SDK sono necessari per sviluppare applicazioni per la piattaforma.Ad esempio, Windows 8 SDK è necessario per sviluppare applicazioni per Windows 8.
Installazione
Qualsiasi piattaforma SDK essere installato su HKLM \ software \ Microsoft \ Microsoft sdks \ TPI [] \ v] \ @InstallationFolder [di TPV = [radice dell'SDK].Pertanto, Windows 8 SDK è installato da HKLM \ software \ Microsoft \ Microsoft sdks \ windows \ v8.0.
Layout
I Platform SDK è il seguente:
\[InstallationFolder root]
SDKManifest.xml
\References
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Nodo |
Descrizione |
---|---|
Cartella Riferimenti |
Contiene i binari che contengono le API che può essere codificatoe su.Questi potrebbero includere i file di metadati o gli assembly di (WinMD) di Windows. |
Cartella di DesignTime |
Contiene i file necessari solo a già stato in esecuzione in/eseguire il debug del tempo.Questi potrebbero includere l'xml doc, librerie, intestazioni, binari in fase di progettazione della casella degli strumenti, elementi MSBuild, e così via ![]()
L'xml, documenti, è posizionato idealmente nella cartella \ DesignTime, ma XML doc per i riferimenti continuerà a essere inserito al file di riferimento in Visual Studio 2012.Ad esempio, XML per documenti di riferimento riferimento \ config \ [] \ [] \ arco sample.dll essere riferimento \ config \ [] \ [] \ arco sample.xml e localizzato versione del documento essere riferimento \ config \ [] \ [] \ arco] \ sample.xml [delle impostazioni locali.
|
Cartella di configurazione |
Possono essere presenti solo tre cartelle: debug, ad esempio e CommonConfiguration.Gli autori di SDK possono inserire i file in CommonConfiguration se lo stesso set di file di SDK è utilizzato, indipendentemente dalla configurazione dell'SDK indirizzerà. |
Cartella di architettura |
Qualsiasi cartella di supporto dell'architettura possono esistere.Visual Studio 2012 supporta le architetture seguenti: x86, x64, MONITORAGGIO e neutra.Nota: Mapping Win32 in x86 e mapping AnyCPU su neutra. In .NET Framework 4.5, MSBuild è specificato per cercare solo in \CommonConfiguration\neutral di Platform SDK. |
SDKManifest.xml |
Questo file viene descritto come Visual Studio deve utilizzare SDK.Esaminare il manifesto dell'SDK per Windows 8:
DisplayNameIl valore che il Visualizzatore oggetti visualizzato nell'elenco di esplorazione.
PlatformIdentityL'esistenza di questo attributo consente a Visual Studio e MSBuild che SDK è una piattaforma SDK e che i riferimenti aggiunti da non devono essere copiati localmente.
TargetFrameworkQuesto attributo viene utilizzato da Visual Studio per assicurarsi che solo i progetti destinati agli stessi framework come specificato nel valore di questo attributo è possibile utilizzare SDK.
MinVSVersionQuesto attributo viene utilizzato da Visual Studio per utilizzare solo gli SDK che si applicano a.
RiferimentoQuesto attributo deve essere specificato solo per i riferimenti che contengono controlli.Per informazioni su come specificare se un riferimento contiene i controlli, vedere in.
|
In Visual Studio
Strumento di gestione dei riferimenti esaminare piattaforma di destinazione moniker (TPM) quindi sostituire valore di proprietà in HKLM \ software \ Microsoft \ Microsoft sdks \ TPI [] \ v] \ @InstallFolder [di TPV = [radice dell'SDK] individuare la posizione del disco Platform SDK.Lo strumento di gestione dei riferimenti quindi:
Aprire il manifesto dell'SDK per determinare se la piattaforma SDK è applicabile alla versione di Visual Studio in cui lo strumento di gestione dei riferimenti è stato chiamato e se la piattaforma SDK è disponibile come Framework di destinazione del progetto che richiama lo strumento di gestione dei riferimenti.Se la piattaforma SDK è applicabile a entrambi i numeri, lo strumento di gestione dei riferimenti utilizzerà la proprietà dell'identificatore della piattaforma di destinazione per il nome della scheda in cui enumerare la piattaforma l'sdk fa riferimento.Se la piattaforma SDK non viene trovata su disco, la scheda continuerà a essere visualizzato, ma il riquadro centrale verrà visualizzato il messaggio "[] TPI SDK non è stato trovato nel computer".
Enumerare tutti i riferimenti specificati nella cartella [InstallFolder root]\references\CommonConfiguration\neutral nella scheda [TPI] | Core.
L'utente può quindi aggiungere i riferimenti in Platform SDK al progetto e utilizzarli nel codice come qualsiasi assembly o WinMD.
Estensione SDK
L'estensione SDK estende una piattaforma non è obbligatoria per le applicazioni di sviluppo di quella piattaforma.Ad esempio, Bing Maps e Windows Live SDK estendono Windows 8 ma non necessari dagli sviluppatori per il sistema operativo.
Installazione
L'estensione SDK può essere inserita in quattro punti:
\ Programmi \ Microsoft sdks \ TPI [] \ v] \ ExtensionSDKs [di TPV
\ Utenti \ [nome utente] \ AppData \ local \ Microsoft sdks \ TPI [] \ v] \ ExtensionSDKs [di TPV
Nel file di progetto come <PropertyGroup><SDKReferenceDirectoryRoot>dir1;dir2</SDKReferenceDirectoryRoot></PropertyGroup> in cui dir1 e dir2 identificano le due percorsi su disco
HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\[SDKName]\[SDKVersion]\@default = [SDK root] dove [SDK root] è [Path to SDK]\[SDKName]\[SDKVersion]\
Per le prime tre posizioni, di alcuna chiave del Registro di sistema è necessaria.È possibile concedere solo l'estensione SDK in una vasta, posizione specifica dell'utente e o personalizzata e Visual Studio verrà semplicemente SDK.Se nessuno di questi meccanismi è adatto, è possibile specificare la posizione personalizzata di SDK utilizzando il percorso del Registro di sistema nella quarta posizione.
Layout
L'estensione SDK sarà il seguente:
\[ExtensionSDKs root]
\[SDKName]
\[SDKVersion]
SDKManifest.xml
\References
\[config]
\[arch]
\Redist
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Nodo |
Descrizione |
---|---|
\[SDKName]\[SDKVersion] |
Forma l'identità dell'estensione SDK.Cioé il nome e la versione dell'estensione SDK è derivato dai nomi delle cartelle corrispondenti nel percorso della directory radice dell'SDK.MSBuild utilizza tale identità per trovare l'sdk su disco e verrà visualizzata questa identità nella finestra e nello strumento di gestione dei riferimenti Proprietà. |
Cartella Riferimenti |
È costituito dai binari che contengono le API che può essere codificatoe su.Può trattarsi file di metadati o assembly di (WinMD) di Windows. |
Cartella di Redist |
È costituito da file necessari per fase di esecuzione/debug e deve ottenere compresso come parte dell'applicazione utente.Due regole si applicano:
|
Cartella di DesignTime |
È costituito da file che solo necessari precedentemente sottoposti/debug di tempo e non devono essere inclusi come parte dell'applicazione utente.Può trattarsi di documenti XML, librerie, intestazioni, binari in fase di progettazione della casella degli strumenti, elementi MSBuild, e così via. ![]()
Un SDK che deve essere utilizzata da un progetto nativo deve disporre di un file di SDKNameprops.Il codice seguente viene illustrato un esempio di questo tipo di file.
![]()
L'xml, documenti, è posizionato idealmente nella cartella \ DesignTime, ma XML doc per i riferimenti continuerà a essere inserito al file di riferimento in Visual Studio 2012.Ad esempio, XML per documenti di riferimento riferimento \ config \ [] \ [] \ arco sample.dll essere riferimento \ config \ [] \ [] \ arco sample.xml e localizzato versione del documento essere riferimento \ config \ [] \ [] \ arco] \ sample.xml [delle impostazioni locali.
|
Cartella di configurazione |
Possono essere presenti solo tre cartelle: debug, ad esempio e CommonConfiguration.Gli autori di SDK possono inserire i file in CommonConfiguration quando lo stesso insieme di file SDK deve essere utilizzato, indipendentemente dalla configurazione di destinazione dell'utente SDK. |
Cartella di architettura |
Qualsiasi cartella di supporto dell'architettura possono esistere.Visual Studio 2012 supporta le architetture seguenti: x86, x64, monitoraggio ARM, indipendente.Mapping Win32 in x86 e mapping AnyCPU su neutra. |
SDKManifest.xml |
Questo file viene descritto come Visual Studio deve utilizzare SDK.Esaminare il manifesto dell'esempio SDK.
NodoDescrizione
DisplayNameIl valore visualizzato in strumento di gestione dei riferimenti, in Esplora soluzioni, nel Visualizzatore oggetti e in altre posizioni nell'interfaccia utente di Visual Studio.
ProductFamilyNameIl nome del prodotto globale SDK.Ad esempio, Libreria Windows per JavaScript (WinJS) SDK fornirà SDK con il nome "Microsoft.WinJS.1.0" e "Microsoft.WinJS.2.0", che appartengono alla stessa famiglia della famiglia di prodotti di SDK, "Microsoft.WinJS".Questo attributo consente a Visual Studio e MSBuild effettuare la connessione.Se questo attributo non è presente, il nome dell'SDK utilizzato come nome del prodotto.
FrameworkIdentityApplicabile solo alle librerie del componente di Windows.Il valore di questo attributo viene inserito nel manifesto dell'applicazione consumer per indicare la dipendenza da una o più librerie del componente di Windows.
TargetFrameworkValore utilizzato per determinare quali SDK sono disponibili negli strumenti di gestione dei riferimenti e casella degli strumenti.Può trattarsi di un elenco delimitato da punti e virgola di moniker del Framework di destinazione.Se più versioni dello stesso framework di destinazione vengono specificate, lo strumento di gestione dei riferimenti utilizzerà la versione in giù specificata per filtrare gli scopi.Ad esempio, se ".NET Framework, version=v2.0; .NET Framework, version=v4.0" è specificato, strumento di gestione dei riferimenti verrà utilizzato ".NET Framework, version=v2.0".Se un profilo specifico del framework di destinazione viene specificato, solo il profilo verrà utilizzato dallo strumento di gestione dei riferimenti per filtrare gli scopi.Ad esempio, quando "Silverlight, version=v4.0, profile=WindowsPhone" è specificato, lo strumento di gestione dei riferimenti filtrerà solo in Windows Phone il profilo; un progetto destinato a Silverlight 4,0 Framework completo non vedranno l'sdk nello strumento di gestione dei riferimenti.
MinVSVersionUtilizzato per filtrare gli SDK che vengono visualizzate in ogni versione di Visual Studio.
AppliesTo
Valore utilizzato per determinare quali SDK sono disponibili nello strumento di gestione dei riferimenti specificando i tipi applicabili di progetto di Visual Studio.In Visual Studio 2012, nove valori vengono riconosciuti: WindowsAppContainer, VisualC, VB, CSharp, WindowsXAML, JavaScript, gestito e nativo.L'autore di SDK può utilizzare e " + ('), (o "|"), non (! "") operatori per specificare esattamente l'ambito dei tipi di progetto che si applicano a SDK.
![]()
WindowsAppContainer identifica i progetti per le applicazioni di Windows Store.
SupportPrefer32BitI valori supportati sono "true" e "False".Se il valore è impostato su "true", il risultato è analogo come se l'attributo non sia stato impostato, ovvero il presupposto predefinita è che Prefer32Bit è supportato.Se il valore è "False" impostate, MSBuild restituisce un errore per i progetti Windows Store (o un avviso per i progetti desktop) se il progetto che fa riferimento SDK è Prefer32Bit abilitato.Per ulteriori informazioni su Prefer32Bit, vedere uno degli argomenti seguenti, a seconda del linguaggio di programmazione:
SupportedArchitecturesUn elenco delimitato da punti e virgola di architetture che supporta SDK.MSBuild visualizzare un avviso se l'architettura di destinazione SDK nel progetto consumer non è supportata.Se questo attributo non viene specificato, MSBuild non visualizzare mai questo tipo di avviso.
SupportsMultipleVersionsSe l'attributo viene impostato su Errore o a Attenzione, MSBuild indica che lo stesso progetto non può fare riferimento a più versioni della stessa famiglia di SDK.Se questo attributo non esiste o è impostato su Consenti, MSBuild non visualizzare questo tipo di errore o di avviso.
AppXApplicabile solo alle librerie del componente di Windows.Questo valore di attributo specifica il percorso dei pacchetti di applicazione per la raccolta componente di Windows su disco e viene passato al componente di registrazione della raccolta componente di Windows durante il debug locale.La convenzione di denominazione per il file è [] società. [In]. [] Architettura. [] Configurazione. [] Versione .appx.La configurazione e l'architettura sono facoltative nel nome di attributo e il valore di attributo se non si applicano alla raccolta del componente di Windows.
CopyRedistToSubDirectoryL'autore di SDK può determinare dove i file nella cartella \ redist vengano copiati relativo alla radice del package di applicazione (ovvero Posizione pacchetto specificato nella procedura guidata del pacchetto di creare) e la radice runtime di layout.Il percorso predefinito è la radice del package di applicazione e del layout F5.
DependsOnElenco delimitato di identità SDK che definiscono gli SDK da cui dipende il presente SDK.Questo attributo viene visualizzato nel riquadro dei dettagli dello strumento di gestione dei riferimenti.
MoreInfoContiene l'url della pagina Web che fornisce all'utente di SDK con l'istruzione.Questo valore viene utilizzato in più collegamento di informazioni nel riquadro di destra dello strumento di gestione dei riferimenti.
Riferimento di fileQuesto attributo deve essere specificato solo per i tali assembly o riferimenti di WinMD che contiene i controlli o è quello nativo WinMD per il quale il tipo di registrazione deve essere specificato.
Tipo di registrazioneQuesto attributo specifica la registrazione di WinMD nel manifesto di applicazione e è obbligatorio per nativo WinMD, che presenta una DLL di implementazione della controparte.
Casella degli strumenti
Nella tabella seguente vengono descritti gli attributi supportati.
Posizione nella casella degli strumentiEsempio di SDKManifest.xml (applicabile a qualsiasi riferimento a WinMD o DLL)
Enumerare tutti i controlli e posizionarli nella categoria predefinita della casella degli strumenti.
Enumerare tutti i controlli e inserirli in un nome di categoria specifica.
Enumerare i controlli specifici e posizionarli nei nomi di categoria particolari.
Enumerare i controlli specifici e posizionarli in nomi di categoria diversi nella combinazione e Visual Studio.
Enumerare i controlli specifici in modo diverso nella combinazione e Visual Studio.
Enumerare i controlli specifici e posizionarli nel percorso comune di Visual Studio o solo nel gruppo di controllo.
Enumerare i controlli specifici e visualizzare un solo set specifico in ChooseItems senza i relativi contenuti nella casella degli strumenti.
|
In Visual Studio
Strumento di gestione dei riferimenti esaminare piattaforma di destinazione moniker (TPM) quindi sostituire valore di proprietà in \ programmi \ Microsoft sdks \ TPI [] \ v TPV [] \ ExtensionSDKs, \ utenti \ [nome utente] \ Microsoft sdks \ TPI [] \ v TPV [] \ ExtensionSDKs e HKLM \ software \ Microsoft \ Microsoft sdks \ TPI [] \ v] \ ExtensionSDKs [di TPV \ individuare la posizione del disco di estensione SDK.
Lo strumento di gestione dei riferimenti si aprirà il manifesto dell'SDK di ogni estensione SDK per determinare se l'estensione SDK è applicabile alla versione di Visual Studio in cui lo strumento di gestione dei riferimenti è stato richiamato, se l'estensione SDK è disponibile come Framework di destinazione del progetto che ha chiamato lo strumento di gestione dei riferimenti e se i valori di attributo di AppliesTo corrispondono alle funzionalità annunciate del sistema di progetto che ha chiamato lo strumento di gestione dei riferimenti.Se l'estensione SDK è applicabile a tutti i numeri, lo strumento di gestione dei riferimenti verrà indicato il DisplayName, la versione e dipendenze SDK e popola il collegamento di più informazioni correttamente nel manifesto dell'estensione SDK.
Un'estensione SDK viene visualizzato come una singola voce nello strumento di gestione dei riferimenti.Una volta aggiunta, viene visualizzato un solo nodo in Esplora soluzioni per le applicazioni gestite e applicazioni di Windows Store compilati per le finestre utilizzando JavaScript.L'sdk verrà visualizzata come voce singola nelle pagine delle proprietà per i progetti Visual C++.L'utente ora non deve accettare nuove azioni.L'utente è impostato per IntelliSense, la casella degli strumenti, finestre di progettazione, Visualizzatore oggetti, compilazione, distribuzione, debug e comprimere.
[!NOTA]
Sulla base del progetto ha risolto la configurazione e l'architettura, Visual Studio consente di selezionare i riferimenti da quello meno specifica alla più specifico.Ad esempio, se la configurazione di destinazione SDK è debug e l'architettura di destinazione SDK è x86, Visual Studio enumererà tutti i riferimenti, a partire da \references\commonconfiguration\neutral, quindi \references\commonconfiguration\x86, quindi \references\debug\neutral e infine \references\debug\x86.Quindi rimuove tutti i duplicati meno specifici e superato tutti i riferimenti al compilatore di IntelliSense.Questo modo di riferimenti di raccolta consente all'autore di SDK la flessibilità di non essere necessario duplicare i riferimenti in cartelle multipli \configuration\architecture.
Se i riferimenti al progetto un SDK che dipende da un altro SDK, Visual Studio non verrà utilizzato automaticamente il secondo SDK.L'utente deve aggiungere manualmente un riferimento al secondo SDK.Per consentire all'utente di dedurre le dipendenze SDK, nella finestra di dialogo strumento di gestione dei riferimenti, quando un SDK è specificato nella scheda di estensioni, il riquadro dettagli elencato il nome e la versione di SDK e (se l'sdk dipende da un altro SDK) il nome della dipendenza SDK.Quando le dipendenze di SDK non vengono soddisfatte, MSBuild restituisce un problema che richiede all'utente di aggiungere dipendenze.
FrameworkIdentity: Visual Studio cerca innanzitutto per FrameworkIdentity- config [] - [] arco, quindi FrameworkIdentity- [] config, quindi FrameworkIdentity- arco [] quindi FrameworkIdentity.Quando viene trovata una corrispondenza, registra il valore dell'attributo corrispondente.
AppX: Il resolver SDK tenta di selezionare l'attributo di AppX più specifico per un'architettura, preferire in ordine decrescente: AppX- config [] - arco [] (o AppX- config [] nel caso di neutra), quindi AppX- arco [] e infine AppX.Ad esempio, se un manifesto dell'SDK specifica i seguenti attributi di AppX: "AppX-x86", "AppX-debug-x86", "AppX-x64", "il AppX- ARM", "la AppX- AIS" e "AppX" e il progetto sono meno il debug e x86, le scelte "AppX-debug-x86" resolver SDK, "AppX-x64", "AppX- ARM", "AppX- AIS" e "AppX".
Nel modello di progetto che fa riferimento a un SDK, è necessario specificare il riferimento SDK nel modo seguente:
<ItemGroup> <SDKReference Include="MySDK, Version=1.0"> <Name>My SDK</Name> </SDKReference> </ItemGroup>
Vedere anche
Attività
Procedura dettagliata: creazione di un SDK tramite C++
Procedura dettagliata: creazione di un SDK tramite C#