single.php

C# WinFormsプロジェクトでWindows.Gaming.Input が見つからない場合の対処法

C#のWinFormsプロジェクトで、Windows.Gaming.Input アセンブリを利用する際に”型または名前空間の名前 ‘Gaming’ が名前空間 ‘Windows’ に存在しません” が表示される場合の対処法について備忘録的に投稿します。

‘Gaming’ 名前空間が存在しない

C#でWindowsに接続しているゲームコントローラーの状態を取得するためのアセンブリ[Windows.Gaming.Input]を追加した際に、ビルド時に

using Windows.Gaming.Input

”CS0234: 型または名前空間の名前 ‘Gaming’ が名前空間 ‘Windows’ に存在しません (アセンブリ参照があることを確認してください)” が表示される場合があります。

プロジェクトの編集でターゲットを変更

エラーが表示される原因は[TargetFramework]が適切でない可能性があります。

Visual Studioの[プロジェクトファイルの編集]メニューで表示された[.csproj]ファイルを編集します。

<Project Sdk="Microsoft.NET.Sdk">

	<PropertyGroup>
    <OutputType>WinExe</OutputType>
<!--
	<TargetFramework>net10.0-windows</TargetFramework>
-->
	<TargetFramework>net10.0-windows10.0.19041.0</TargetFramework>
	<Nullable>enable</Nullable>
    <UseWindowsForms>true</UseWindowsForms>
    <ImplicitUsings>enable</ImplicitUsings>
    <ApplicationManifest>app.manifest</ApplicationManifest>
  </PropertyGroup>

WinFormsの場合、既定値では[net10.0-windows]が設定されているので、この値を[net10.0-windows10.0.19041.0]に変更します。

エラー表示が無くなれば、[TargetFramework]が適切ではないのが原因です。

まとめ

今回は短い記事ですが、WinFormsプロジェクトで、Windows.Gaming.Input アセンブリを利用する際に”型または名前空間の名前 ‘Gaming’ が名前空間 ‘Windows’ に存在しません” が表示される場合の対処法について書きました。

エラーの原因は “Windows.Gaming.Input” アセンブリが利用できる .NET Framework の対象が正しく設定されていない可能性があります。

[プロジェクトファイルの編集]メニューで表示された[.csproj]ファイルを編集します。

WinFormsプロジェクトで”型または名前空間の名前 ‘Gaming’ が名前空間 ‘Windows’ に存在しません” が表示される人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です