方法: ソフトウェア開発キットを作成する

ソフトウェア開発キット (SDK) は Visual Studio が一つの参照の項目として処理するファイルのコレクションです。[参照マネージャー] のダイアログ ボックスは [参照マネージャー] のダイアログ ボックスを起動するプロジェクトに関連するすべての SDK を示します。SDK をプロジェクトに追加すると、すべてのコンテンツは、IntelliSense、[ツールボックス]、デザイナー、オブジェクト ブラウザー、ビルド、配置、デバッグとパッケージで使用できます。

SDK の 2 種類があります:

  • プラットフォーム SDK には、プラットフォームの apps の開発に必要なコンポーネントです。Windows ストア の apps を開発する際にたとえば、Windows 8 SDK が必要です。

  • 拡張子は、プラットフォーム SDK を拡張するが、そのプラットフォーム用の apps のために必須ではありません。省略可能な要素。

以下のセクションでは、SDK の一般的なインフラストラクチャをプラットフォーム SDK と拡張子 SDK を作成する方法について説明します。

  • ターゲット プラットフォームのモニカー

  • プラットフォーム SDK

  • 拡張機能の SDK

ターゲット プラットフォームのモニカー

Visual Studio 2012 は 2 個の新しいプロパティをサポートしています:

  1. ターゲット プラットフォームの識別子 (TPI): このプロパティの有効値は、ソフトウェアを開発できるさまざまなプラットフォームで構成されます。Windows プラットフォームはの例です。

  2. ターゲット プラットフォームのバージョン (TPV): このプロパティは、ターゲット プラットフォームのバージョンを指定します。たとえば、Windows 8の場合、TPV は 8.0 で、TPI は Windows です。

また、これら二つのプロパティはインフラストラクチャを参照する Windows 8 および SDK の基礎を形成するターゲット プラットフォームのモニカー (TPM) を形成します。たとえば、Windows 8 の TPM は "Windows"、version=8.0 です。

プラットフォーム SDK

プラットフォーム SDK には、プラットフォームの apps を開発するために必要です。Windows 8の apps を開発する際にたとえば、Windows 8 SDK が必要です。

Hh768146.collapse_all(ja-jp,VS.110).gifインストール

すべてのプラットフォーム SDK は HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\@InstallationFolder = [SDK のルート] にインストールされます。したがって、Windows 8 SDK は HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.0 にインストールされます。

Hh768146.collapse_all(ja-jp,VS.110).gif[レイアウト]

プラットフォーム SDK に次のレイアウトがあります:

\[InstallationFolder root]
            SDKManifest.xml
            \References
                  \[config]
                        \[arch]
            \DesignTime
                  \[config]
                        \[arch]

ノード

説明

参照フォルダー

コードできる API を含む binary が含まれます。これらは Windows のメタデータの (WinMD) ファイルまたはアセンブリを含めることができます。

DesignTime フォルダー

前の実行/デバッグ時にのみ必要なファイルが含まれています。これらには、XML ドキュメント、ライブラリ、ヘッダー、ツールボックスのデザイン時 binary、MSBuild のアーティファクトを含めることができます。

Caution メモ注意
XML ドキュメントは\DesignTime フォルダーに、理想的に、設定しましたが、参照の XML ドキュメントは Visual Studio 2012に参照ファイルとともに設定され続けます。たとえば、\References\[config]\[arch]\sample.dll 参照の XML ドキュメントは \References\[config]\[arch]\sample.xml になり、そのドキュメントのローカライズ バージョンは \References\[config]\[arch]\[locale]\sample.xml になります。

構成のフォルダー

3 個のフォルダーは一つだけです: リテール バージョンとデバッグ、CommonConfiguration。SDK の作成者は CommonConfiguration の下に SDK のコンシューマーが対象とする構成に関係なく、SDK のファイルの同じセットを実行すると、ファイルを設定できます。

アーキテクチャのフォルダー

サポートされるアーキテクチャのフォルダー持つことができます。Visual Studio 2012 は、次のアーキテクチャをサポートしています: x86、x64、および ARM ニュートラル。メモ: x86 への Win32 マップ、ニュートラルへの AnyCPU マップ。

.NET Framework 4.5では、MSBuild は、プラットフォーム SDK を\CommonConfiguration\neutral でのみ表示するには、ハードコーディングされています。

[SDKManifest.xml]

このファイルは、Visual Studio SDK がを実装する方法を説明します。Windows 8を SDK のマニフェストを参照します:

<FileList
            DisplayName = “Windows”
            PlatformIdentity = “Windows, version=8.0”
            TargetFramework = “.NET for Windows Store apps, version=v4.5; .NET Framework, version=v4.5”
            MinVSVersion = “11.0”>
            <File Reference = “Windows.winmd”>
               <ToolboxItems VSCategory = “Toolbox.Default” />
            </File>
</FileList>
DisplayNameオブジェクト ブラウザーが参照の一覧の表示値。
PlatformIdentityこの属性の存在は、SDK は、プラットフォーム SDK であり、そこから追加された参照はローカルにコピーしないよう Visual Studio および MSBuild を示します。
TargetFrameworkVisual Studio は、この属性がこの属性の値で指定された同じフレームワークを対象とするプロジェクトだけ SDK を実行できるようにするために使用されます。
MinVSVersionVisual Studio は、この属性を要素に適用する SDK のみ実行するために使用されます。
Referenceこの属性は、コントロールを含み、それらの参照の場合に指定する必要があります。参照がコントロールを含めるかどうかを指定する方法については、" "を参照してください。

Hh768146.collapse_all(ja-jp,VS.110).gifVisual Studio

参照マネージャーはターゲット プラットフォーム モニカー (TPM) を見て、HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\@InstallFolder = [SDK ルート] のプロパティ値を置換し、プラットフォーム SDK のディスク位置を発見するようにします。参照マネージャーは、:

  1. プラットフォーム SDK が適用される参照マネージャーが呼び出されたかどうか、および、プラットフォーム SDK には、参照マネージャーを起動するプロジェクトの対象とするフレームワークで適用されているバージョンの Visual Studio であるかどうかを判断する SDK のマニフェストを開きます。プラットフォーム SDK の両方の計算に適用される場合は、参照マネージャーは、プラットフォーム SDK を参照する列挙するには、タブ名のターゲット プラットフォームの識別子のプロパティを使用します。プラットフォーム SDK がディスク上にない場合、タブは引き続き表示されますが、メッセージ "[TPI] SDK がコンピューターに見つけることを" 中央のペインに示します。

  2. [InstallFolder のルート]\references\CommonConfiguration\neutral フォルダーの下に指定したのすべての参照を列挙し、[TPI] | コアのタブを取得します。

ユーザーがプロジェクトにアセンブリまたは WinMD ように、プラットフォーム SDK の参照を追加し、コードの実行できます。

拡張機能の SDK

拡張子は、プラットフォーム SDK を拡張しますが、そのプラットフォームのアプリケーション開発のために必須ではありません。たとえば、Bing Maps および Windows Live SDK は Windows 8 ウィンドウを拡張しますが、そのオペレーティング システムのすべての開発者が不要になります。

Hh768146.collapse_all(ja-jp,VS.110).gifインストール

拡張機能の SDK には、4 の位置に 1 が設定できます:

  • \Program Files\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs

  • \Users\[username]\AppData\Local\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs

  • dir1 と dir2 がディスク上の任意の 2 種類の位置を識別する <PropertyGroup><SDKReferenceDirectoryRoot>dir1;dir2</SDKReferenceDirectoryRoot></PropertyGroup> としてプロジェクト ファイル

  • HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\[SDKName]\[SDKVersion]\@default = [SDK root] where [SDK root] is [Path to SDK]\[SDKName]\[SDKVersion]\

最初の 3 種類の位置の場合、レジストリ キーは必要ではありません。は、コンピューター全体、ユーザー固有またはカスタム位置の拡張機能の SDK を削除することもできます。は Visual Studio SDK を受け取ります。これらの機構にも適していない場合、4 番目の位置でレジストリ パスを使用して、SDK のカスタムの場所を指定できます。

Hh768146.collapse_all(ja-jp,VS.110).gif[レイアウト]

拡張機能の SDK に次のレイアウトがあります:

\[ExtensionSDKs root]
           \[SDKName]
                 \[SDKVersion]
                        SDKManifest.xml
                        \References
                              \[config]
                                    \[arch]
                        \Redist
                              \[config]
                                    \[arch]
                        \DesignTime
                               \[config]
                                     \[arch]

ノード

説明

\[SDKName]\[SDKVersion]

拡張機能の SDK の ID を形成します。つまり、拡張機能の SDK の名前とバージョンはパスの対応するフォルダーの名前から SDK のルートに取得されます。MSBuild はディスク SDK を検索するには、この ID を使用し、Visual Studio は [プロパティ] のウィンドウと参照マネージャーでこの ID を表示します。

参照フォルダー

binary コードからできる API を含む構成されます。これらは Windows のメタデータの (WinMD) ファイルまたはアセンブリであることができます。

Redist フォルダー

ファイルから実行時/デバッグに必要なユーザー、アプリケーションの一部として包まれて取得する必要があります。構成されます。2 種類の規則が適用されます:

  1. すべてのバイナリーは \redist\[config]\[arch] の下に配置されるべきであり、バイナリーの名前は一意性を保証する次の形式が必要です: [会社名].[製品名].[目的].[拡張子].たとえば、Microsoft.Cpp.Build.dll。

  2. 他の SDK のファイル名と競合する可能性のある名前を持つすべてのファイルは \redist\[config]\[arch]\[sdkname]\ の下に XAML のコントロールに関連付けられているファイルは除外されます (たとえば、JavaScript、css、pri、xaml、および png JPG ファイル) に設定されている必要があります。これらのファイルは \redist\[config]\[arch]\[componentname]\ の下に配置する必要があります。

DesignTime フォルダー

ファイルから必要な前の実行/デバッグ時のみ、ユーザー アプリケーションの一部としてパッケージ化するのではなく構成されます。これらには、XML ドキュメント、ライブラリ、ヘッダー、ツールボックスのデザイン時 binary、MSBuild のアーティファクトであることができます。

Caution メモ注意
ネイティブ プロジェクトで使用するために用意されている、SDK が SDKName.props ファイルが必要です。次のコードは、この種類のファイルの例を示します。
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ExecutablePath>C:\Temp\ExecutablePath;$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(FrameworkSDKRoot)\..\v8.0\ExtensionSDKs\cppimagingsdk\1.0\DesignTime\CommonConfiguration\Neutral\include;$(IncludePath)</IncludePath>
    <AssemblyReferencePath>C:\Temp\AssemblyReferencePath;$(AssemblyReferencePath)</AssemblyReferencePath>
    <LibraryPath>$(FrameworkSDKRoot)\..\v8.0\ExtensionSDKs\cppimagingsdk\1.0\DesignTime\Debug\ARM;$(LibraryPath)</LibraryPath>
    <SourcePath>C:\Temp\SourcePath\X64;$(SourcePath)</SourcePath>
    <ExcludePath>C:\Temp\ExcludePath\X64;$(ExcludePath)</ExcludePath>
    <_PropertySheetDisplayName>DevILSDK, 1.0</_PropertySheetDisplayName>
  </PropertyGroup>
</Project>
メモメモ
XML ドキュメントは\DesignTime フォルダーに、理想的に、設定しましたが、参照の XML ドキュメントは Visual Studio 2012に参照ファイルとともに設定され続けます。たとえば、\References\[config]\[arch]\sample.dll 参照の XML ドキュメントは \References\[config]\[arch]\sample.xml になり、そのドキュメントのローカライズ バージョンは \References\[config]\[arch]\[locale]\sample.xml になります。

構成のフォルダー

3 個のフォルダーは一つだけです: リテール バージョンとデバッグ、CommonConfiguration。SDK の作成者は CommonConfiguration の下に SDK のコンシューマーが対象とする構成に関係なく、SDK のファイルのセットが実行されると、ファイルを設定できます。

アーキテクチャのフォルダー

サポートされるアーキテクチャのフォルダー持つことができます。Visual Studio 2012 は、次のアーキテクチャをサポートしています: x86、x64、ニュートラル ARM。x86 への Win32 マップ、ニュートラルへの AnyCPU マップ。

[SDKManifest.xml]

このファイルは、Visual Studio SDK がを実装する方法を説明します。次のサンプル SDK のマニフェストを参照してください。

<FileList
DisplayName = “My SDK”
ProductFamilyName = “My SDKs”
FrameworkIdentity-Debug = “Name=MySDK.10.Debug, MinVersion=1.0.0.0”
FrameworkIdentity-Retail = “Name=MySDK.10, MinVersion=1.0.0.0”
TargetFramework = “.NETCore, version=v4.5; .NETFramework, version=v4.5”
MinVSVersion = “11.0”
AppliesTo = "WindowsAppContainer + WindowsXAML"
SupportPrefer32Bit = “OS”
SupportedArchitectures = “x86;x64;ARM”
SupportsMultipleVersions = “Error”
AppX-Debug-x86 = “.\AppX\Debug\x86\Microsoft.MySDK.x86.Debug.1.0.appx”
AppX-Debug-x64 = “.\AppX\Debug\x64\Microsoft.MySDK.x64.Debug.1.0.appx”
AppX-Debug-ARM = “.\AppX\Debug\ARM\Microsoft.MySDK.ARM.Debug.1.0.appx”
AppX-Release-x86 = “.\AppX\Retail\x86\Microsoft.MySDK.x86.1.0.appx”
AppX-Release-x64 = “.\AppX\Retail\x64\Microsoft.MySDK.x64.1.0.appx”
AppX-Release-ARM = “.\AppX\Retail\ARM\Microsoft.MySDK.ARM.1.0.appx” 
CopyRedistToSubDirectory = “.”
DependsOn = “SDKB, version=2.0”
MoreInfo = “https://msdn.microsoft.com/MySDK”>
<File Reference = “MySDK.Sprint.winmd” Implementation = “XNASprintImpl.dll”>
<Registration Type = “Flipper” Implementation = “XNASprintFlipperImpl.dll” />
<Registration Type = “Flexer” Implementation = “XNASprintFlexerImpl.dll” />
<ToolboxItems VSCategory = “Toolbox.Default” />
</File>
</FileList>
ノード説明
DisplayNameVisual Studio のユーザー インターフェイスに関するマネージャー、ソリューション エクスプローラー、オブジェクト ブラウザーなどの位置に表示される値。
ProductFamilyName全体的な SDK の製品名。たとえば、Windows Library for JavaScript (WinJS) SDK は" SDK の製品ファミリで同じファミリに属する "" および " "Microsoft.WinJS.1.0 Microsoft.WinJS.2.0 名前を持つ SDK を Microsoft.WinJS" 付属しています。この属性は、Visual Studio および MSBuild がそのつながりを設定するようにします。この属性が存在しない場合は、SDK の名前は、グループ名として使用されます。
FrameworkIdentityWindows コンポーネント ライブラリにのみ適用されます。この属性の値は、実行アプリケーションのマニフェストに一つ以上の Windows コンポーネント ライブラリの依存関係を示すようになります。
TargetFrameworkどの SDK が参照マネージャーおよびツールボックスで使用できるかの値。これにより、ターゲット フレームワーク モニカーのセミコロン区切りのリストです。同じターゲット フレームワークの複数のバージョンを指定すると、参照マネージャーは目的をフィルター処理するための最も低いバージョン指定を使用します。たとえば、".NET Framework、version=v2.0; .NET Framework は"、version=v4.0、参照マネージャー使用して ""、.NET Framework version=v2.0 を指定します。特定のターゲット フレームワーク プロファイルを指定した場合は、そのプロファイルのみが目的をフィルター処理するには参照マネージャーによって使用されます。たとえば、"Silverlight、version=v4.0 の profile=WindowsPhone" を指定すると、参照マネージャーは Windows Phone のプロファイルのみでフィルター処理; プロジェクトは、完全な Silverlight 4.0 フレームワークが表示されませんが参照マネージャー SDK を対象にする。
MinVSVersionフィルター処理に使用する SDK は Visual Studio の各バージョンに含める。
AppliesTo
どの SDK が適用される、Visual Studio のプロジェクトの種類を指定することにより、参照マネージャーで使用できるかの値。Visual Studio 2012では、9 の値を確認し: WindowsAppContainer、VisualC、VB、CSharp、WindowsXAML、JavaScript、マネージ コードとネイティブ。SDK の作成者は and ("+")、or ("|")、not ("!") 演算子を利用して、SDK に適用するプロジェクトの種類の範囲を正確に指定できます。
メモメモ
WindowsAppContainer は Windows ストア の apps のプロジェクトを識別します。
SupportPrefer32Bitサポートされている値は "true" または "false" です。値が "true" に設定されている場合、結果は属性が設定されていない場合と同じです。; つまり、既定のの解釈が Prefer32Bit がサポートされていることです。値が "false" に設定されている場合、MSBuild は参照に SDK Prefer32Bit が存在するプロジェクトが有効な場合 Windows ストア のプロジェクトのエラー返します (またはデスクトップのプロジェクトの警告が適用されます。Prefer32Bit に関する詳細については、使用するプログラミング言語に応じて、次のトピック" 1 "を、参照:
  1. [ビルド] ページ (プロジェクト デザイナー) (C#)

  2. [コンパイル] ページ (プロジェクト デザイナー) (Visual Basic) .

SupportedArchitecturesSDK がサポートするアーキテクチャをセミコロンで区切ったリスト。MSBuild のは、プロジェクトの対象 SDK のアーキテクチャがサポートされる警告を表示します。この属性を指定しない場合、MSBuild は、この型の警告を表示します。
SupportsMultipleVersionsこの属性が [エラー][警告] に設定されている場合、MSBuild は同じプロジェクトが同じ SDK のファミリの複数のバージョンを参照できないことを示します。この属性が [許可] にない場合に設定されていない場合、MSBuild はエラーまたは警告のこの型を表示します。
AppXWindows コンポーネント ライブラリにのみ適用されます。この属性はディスクに Windows のコンポーネント ライブラリに対してアプリケーションのパッケージのパスを指定し、パスは、ローカル デバッグ中に Windows のコンポーネント ライブラリの登録のコンポーネントに渡されます。ファイル名の名前付け規則は [プロバイダー].[Product].[アーキテクチャ].[構成].[バージョン].appx。Windows コンポーネントのライブラリに適用する構成とアーキテクチャは、属性名、および属性値ではオプションです。
CopyRedistToSubDirectorySDK の作成者は\redist フォルダーの下のファイルがアプリケーションのパッケージのルート (つまり、App パッケージの作成ウィザードで選択された [パッケージの場所]) とランタイムのレイアウトのルートを基準とする場所にコピーされるかを確認できます。既定の場所は、アプリケーションのパッケージ化と F5 レイアウトのルートです。
DependsOnこの SDK が依存する SDK を定義する SDK の ID の区切りのリスト。この属性は、参照マネージャーの詳細ペインに表示されます。
MoreInfoガイダンスを SDK のコンシューマーに提供する Web ページの URL が含まれています。この値は、参照マネージャーの右ペインの詳細についてリンクで使用されます。
ファイル参照この属性は、コントロールを含めるか、レジスタの型を指定する必要があるネイティブ WinMD であること、それらのアセンブリと WinMD の参照だけを指定する必要があります。
登録の型この属性は、アプリケーション マニフェストの WinMD のレジスタを指定し、同等の実装の DLL があるネイティブ WinMD に必要です。
[ツールボックス]
次の表は、サポートされている属性を示します。
ツールボックスの配置SDKManifest.xml の例 (すべての参照– WinMD または DLL に適用できる)
すべてのコントロールを列挙し、ツールボックスの既定のカテゴリに設定します。
<File Reference = “sample.winmd”>
                <ToolboxItems VSCategory = “Toolbox.Default”/>     
</File>
すべてのコントロールを列挙し、特定のカテゴリ名の下に配置します。
<File Reference = “sample.winmd”>
                <ToolboxItems VSCategory= “MyCategoryName”/>
</File>
特定のコントロールを列挙し、特定のカテゴリ名の下に配置します。
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Graph”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                < ToolboxItems/>
                < ToolboxItems VSCategory = “Data”>
                                <Item Type = “sample.datagrid”/>
                                <Item Type = “sample.dataconnection”/>
                < ToolboxItems />
</File>
特定のコントロールを列挙し、さまざまなカテゴリ名の下に Expression Blend と Visual Studio に設定します。
// Blend accepts a slightly different structure for the category name because it allows a path rather than a single category.
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Graph” BlendCategory = “Controls/sample/Graph”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                < ToolboxItems />
</File>
Expression Blend と Visual Studio の特定のコントロールに異なる列挙します。
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Graph”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                <ToolboxItems/>
                < ToolboxItems BlendCategory = “Controls/sample/Graph”>
                                <Item Type = “sample.piegraph”/>
                <ToolboxItems/>
</File>
特定のコントロールを列挙し、Visual Studio の共通パスの下またはすべてのコントロール グループにのみ設定します。
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Toolbox.Common”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                < ToolboxItems />
                < ToolboxItems VSCategory = “Toolbox.All”>
                                <Item Type = “sample.datagrid”/>
                                <Item Type = “sample.dataconnection”/>
                < ToolboxItems />
</File>
特定のコントロールを列挙し、ChooseItems のツールボックスにある .vsz なしで特定のセットのみを表示します。
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Toolbox.ChooseItemsOnly”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                < ToolboxItems />
</File>

Hh768146.collapse_all(ja-jp,VS.110).gifVisual Studio

参照マネージャーはターゲット プラットフォームの (TPM) モニカーを表示し、次に拡張機能の SDK のディスク上の位置を検出する \Program Files\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs、\Users\[username]\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs と HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\ のプロパティ値を\ExtensionSDKs\代入します。

参照マネージャーは、拡張子の SDK には、対象とするフレームワークによって適用される参照マネージャーを起動したかどうか、およびの AppliesTo 属性の値は、参照マネージャーを起動したプロジェクト システムが提供した機能に一致するプロジェクトであるかどうか、拡張子の SDK を参照マネージャーが開始された Visual Studio のバージョンに適用されるかどうかを確認するには、拡張子の SDK SDK のマニフェストを開きます。拡張機能の SDK がすべての計算に適用される場合は、参照マネージャーは、DisplayName、バージョン、および SDK の依存関係を表示し、次に拡張機能の SDK のマニフェストによって詳細についてリンクに正しく設定します。

拡張機能マネージャー SDK は参照の一つのエントリとして表示されます。追加、JavaScript を使用して、Windows 用にビルドされたマネージ apps と Windows ストア の apps の [ソリューション エクスプローラー] の単一ノードとして表示されます。SDK は、Visual C++ プロジェクトのプロパティ ページの単一エントリとして表示されます。ユーザーは、それ以上の処理を行う必要はありません。ユーザーは、IntelliSense、ツールボックス、デザイナー、オブジェクト ブラウザー、ビルド、配置、およびデバッグ パッケージ用に設定されます。

[!メモ]

  1. プロジェクトに基づいて構成を対象とし、アーキテクチャは、Visual Studio 低いものから特定への参照が選択されます。たとえば、を対象とする SDK がデバッグ構成であり、対象の SDK のアーキテクチャが x86 の場合、Visual Studio は\references\commonconfiguration\neutral、\references\commonconfiguration\x86、\references\debug\neutral、finally の\references\debug\x86 で始まるすべての参照を、列挙します。次に、あまり特定の複製するを削除し、IntelliSense のコンパイラへのすべての参照を渡します。盗品の参照のこの方法は、SDK の作成者にいない複数の\configuration\architecture フォルダーの下の参照を複製する必要の柔軟性が得られます。

  2. プロジェクトが別の SDK に依存する SDK を参照する場合、Visual Studio は自動的に 2 番目の SDK は実行されません。ユーザーが手動で 2 番目の SDK への参照を追加する必要があります。SDK が拡張機能のタブで指定されている場合に、ユーザーが SDK の依存関係、参照マネージャー]ダイアログ ボックスで推論できるようにするには、詳細ペインで、SDK の名前、バージョン、および (SDK が別の SDK に依存している場合) SDK の依存関係の名前を示します。SDK の依存関係が満たされない場合に、ユーザーに依存関係を追加するように要求する警告を返します。

  3. FrameworkIdentity: Visual Studio は FrameworkIdentity- [設定] -次に[包括 FrameworkIdentity-]、および[設定]、および[包括 FrameworkIdentity-]、および FrameworkIdentity を最初に表示されます。これは一致を見つけると、一致の属性の値を記録します。

  4. AppX: SDK リゾルバーは、アーキテクチャごとの AppX の特定の属性を選択することを試みます; 降順に: AppX-[設定]-[包括] (またはニュートラルの場合は AppX-[設定])、および AppX-[包括]、そして最終的には AppX。たとえば、SDK のマニフェストが AppX の次の属性を指定した場合: AppX "x86"、"AppX デバッグ x86"、"AppX x64"、""、"AppX ARM AppX ITA" および "" AppX、およびプロジェクトは、対象のデバッグと x86、SDK リゾルバーの選択 AppX デバッグ "x86"、"AppX x64"、""、"AppX ARM AppX ITA" および "" AppX いません。

  5. SDK を参照するプロジェクト テンプレートでは、SDK の参照を次の方法で指定する必要があります:

    <ItemGroup> <SDKReference Include="MySDK, Version=1.0">    <Name>My SDK</Name>  </SDKReference> </ItemGroup>

参照

処理手順

チュートリアル: C++ を使用した SDK の作成

チュートリアル: C# を使用した SDK の作成

概念

プロジェクト参照の管理