はじめに
この解説では、UWP の CameraStarterKit のサンプルをビルドします。
https://github.com/microsoft/Windows-universal-samples を Clone もしくは zip で展開しておきます。
個々のサンプルプロジェクトは、Windows-universal-samples 直下の SharedContent にあるファイルを利用しています。また、サンプルプロジェクトは cpp や cs、vb など複数の言語で用意され、それぞれ別のフォルダに格納されていますが、それらで共通で利用される xaml ファイルなどが同じ階層の shared フォルダに入っています。
今、たとえばあるサンプルのC#のプロジェクトだけ使うとして、必要なファイルだけを一つのフォルダにまとめたいと思ったときに、どのようにファイルをまとめ、ビルドすればよいかについて解説します。
Windows-universal-samples\Samples\CameraStarterKit\cs
を例にとります。
ファイルをまとめる
- Windows-universal-samples\Samples\CameraStarterKit\cs
- Windows-universal-samples\Samples\CameraStarterKit\shared
- Windows-universal-samples\SharedContent
のファイルが必要になります。
-
Samples\CameraStarterKit\cs
のフォルダをCameraStarterKit
に変更する。(以降ではCameraStarterKit
フォルダといえばこの作成したフォルダのこと。) -
Samples\CameraStarterKit\shared
のApp.xaml
、MainPage.xaml
をCameraStarterKit
フォルダへコピーする。 -
CameraStarterKit
フォルダにAssets
,Properties
という名前のフォルダをそれぞれ作る。 -
SharedContent\media
の以下の5このファイルをCameraStarterKit\Assets
へコピー- smalltile-sdk.png
- splash-sdk.png
- squaretile-sdk.png
- storelogo-sdk.png
- tile-sdk.png
-
SharedContent\cs
のAssemblyInfo.cs
とDefault.rd.xml
をCameraStarterKit\Properties
へコピー
プロジェクトファイルを編集する
CameraStarterKit\CameraStarterKit.csproj
をエディタで開く。
基本的には、<Link>
になっている部分を、実ファイルを直接指すように編集していきます。
不要となるディレクトリ名を削除
<PropertyGroup>
<SharedContentDir>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), LICENSE))\SharedContent</SharedContentDir>
</PropertyGroup>
を削除する。
<Link>
を削除
Content 関係
<Content Include="$(SharedContentDir)\cs\Default.rd.xml">
<Link>Properties\Default.rd.xml</Link>
</Content>
<Content Include="$(SharedContentDir)\media\smalltile-sdk.png">
<Link>Assets\smalltile-sdk.png</Link>
</Content>
<Content Include="$(SharedContentDir)\media\splash-sdk.png">
<Link>Assets\splash-sdk.png</Link>
</Content>
<Content Include="$(SharedContentDir)\media\squaretile-sdk.png">
<Link>Assets\squaretile-sdk.png</Link>
</Content>
<Content Include="$(SharedContentDir)\media\storelogo-sdk.png">
<Link>Assets\storelogo-sdk.png</Link>
</Content>
<Content Include="$(SharedContentDir)\media\tile-sdk.png">
<Link>Assets\tile-sdk.png</Link>
</Content>
を以下のようにする。
<Content Include="Properties\Default.rd.xml" />
<Content Include="Assets\smalltile-sdk.png" />
<Content Include="Assets\splash-sdk.png" />
<Content Include="Assets\squaretile-sdk.png" />
<Content Include="Assets\storelogo-sdk.png" />
<Content Include="Assets\tile-sdk.png" />
Compile 関係
さらに、
<Compile Include="$(SharedContentDir)\cs\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
を
<Compile Include="Properties\AssemblyInfo.cs" />
に変更する。
xaml 関係
最後に
<ApplicationDefinition Include="..\shared\App.xaml">
<Link>App.xaml</Link>
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="..\shared\MainPage.xaml">
<Link>MainPage.xaml</Link>
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
を以下のように差し替える。
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
ビルドと実行
- CameraStarterKit.sln を Visual Studio で開き、メニューバーのすぐ下にある構成をARMからx64に変更する。
- ファイルまわりで警告が出ていないことを確認しつつビルドする。
- 配置関係、ターゲット関係でDEP3321エラーが出たときは、プロジェクトのプロパティを開いてターゲットを落とし、再度ビルドする。
- Visual Studio からデバッグ実行してみる。
- マイクとカメラへのアクセスを許可する必要がある。
以上です。