LoginSignup
1
3

More than 3 years have passed since last update.

UWPのCameraStarterKitサンプルをビルドする

Last updated at Posted at 2020-05-01

はじめに

この解説では、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

のファイルが必要になります。

  1. Samples\CameraStarterKit\cs のフォルダを CameraStarterKit に変更する。(以降ではCameraStarterKitフォルダといえばこの作成したフォルダのこと。)
  2. Samples\CameraStarterKit\sharedApp.xamlMainPage.xamlCameraStarterKitフォルダへコピーする。
  3. CameraStarterKitフォルダに Assets, Properties という名前のフォルダをそれぞれ作る。
  4. SharedContent\media の以下の5このファイルをCameraStarterKit\Assets へコピー
    • smalltile-sdk.png
    • splash-sdk.png
    • squaretile-sdk.png
    • storelogo-sdk.png
    • tile-sdk.png
  5. SharedContent\csAssemblyInfo.csDefault.rd.xmlCameraStarterKit\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>

ビルドと実行

  1. CameraStarterKit.sln を Visual Studio で開き、メニューバーのすぐ下にある構成をARMからx64に変更する。
  2. ファイルまわりで警告が出ていないことを確認しつつビルドする。
    • 配置関係、ターゲット関係でDEP3321エラーが出たときは、プロジェクトのプロパティを開いてターゲットを落とし、再度ビルドする。
  3. Visual Studio からデバッグ実行してみる。
    • マイクとカメラへのアクセスを許可する必要がある。

以上です。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3