はじめに
Google Cloud Functions にコードを記述してデプロイしようとすると以下のようなエラーを吐くことがあります。
error CS0246: The type or namespace name '' could not be found (are you missing a using directive or an assembly reference?)
エラー文の通り、コードの一部の記述が Google Cloud Functions 側に存在しないライブラリを参照してしまっていることが原因です。
対処法
このエラーに対しては2ステップで対処できます。
手順1
Google Cloud Functions の状態をローカルで再現して Visual Studio や Rider などの IDE でビルドが通る状態にします。
この状態でプロジェクトのルートディレクトリにある .csproj ファイルを開きます。

手順2
ローカルの .csproj ファイルにはあって、Google Cloud Functions 側の .csproj ファイルには無い項目を Google Cloud Functions 側の .csproj ファイルに追加します。
この例では以下の4行を Google Cloud Functions 側の .csproj ファイルに追加しています。
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PackageReference Include="Google.Cloud.Functions.Framework" Version="1.0.0-beta02" />
<PackageReference Include="JWT" Version="10.1.1" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Cloud.Functions.Framework" Version="1.0.0-beta02" />
<PackageReference Include="JWT" Version="10.1.1" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Cloud.Functions.Hosting" Version="2.0.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<!-- 追加↓ -->
<ImplicitUsings>enable</ImplicitUsings>
<!-- 追加↓ -->
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Cloud.Functions.Hosting" Version="2.0.0" />
<!-- 追加↓ -->
<PackageReference Include="Google.Cloud.Functions.Framework" Version="1.0.0-beta02" />
<!-- 追加↓ -->
<PackageReference Include="JWT" Version="10.1.1" />
</ItemGroup>
</Project>
これで Google Cloud Functions でデプロイが通るはずです。
もしこの手順を踏んでも以下のエラー文とともにデプロイに失敗する場合は Google.Cloud.Functions.Hosting
のバージョンと Google.Cloud.Functions.Framework
のバージョンを一致させるように .csproj ファイルを修正します。
error NU1605: Warning As Error: Detected package downgrade:Google.Cloud.Functions.Framework from 2.0.0 to 1.0.0-beta02. Reference the package directly from the project to select a different version.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Cloud.Functions.Hosting" Version="2.0.0" />
<!-- 「1.0.0-beta02」から「2.0.0」に変更する↓ -->
<PackageReference Include="Google.Cloud.Functions.Framework" Version="2.0.0" />
<PackageReference Include="JWT" Version="10.1.1" />
</ItemGroup>
</Project>
最後に
株式会社ModelingXについて

富山県を拠点とするスタートアップ企業、ModelingXは、2022年4月に創業し、「テクノロジーで感動体験を提供する」というミッションを掲げています。当社が開発中の暮らし体験メタバース「MELIFE(ミライフ)」は、バーチャル住宅展示場や銀行相談、家具購入、婚活などができる「地域単位の新たな経済圏」を目指しています。
↓サービスサイトはこちらから↓
ModelingXはリモートワーク&フレックスタイム制を完備。
UnityやUEを共に探求する仲間を全国から募集しています。
↓企業詳細はこちら↓