Version: 2023.1
言語: 日本語
安定したスクリプティングランタイム - 既知の制限
C# コンパイラー

追加のクラスライブラリアセンブリの参照

Unity がデフォルトでコンパイルしない .NET クラスライブラリ API の一部を Unity プロジェクトに使用する場合は、コンパイル中に参照する追加アセンブリのリストを C# コンパイラーに提供することが可能です。この動作は、プロジェクトが使用する .NET プロファイルによって異なります。詳細は .NET プロファイルのサポート を参照してください。

.NET Standard プロファイル

プロジェクトが .NET Standard プロファイルを使用している場合、.NET クラスライブラリ API の全ての部分がデフォルトで参照されます。追加のアセンブリは参照できません。API の一部が欠落していると思われる場合は、それは .NET Standard に含まれない可能性があります。代わりに .NET Framework プロファイルを使用してみてください。プロファイル変更時のコンパイルの問題を回避するには、プロファイルの切り替え を参照してください。

.NET Framework プロファイル

.NET Framework プロファイルを使用する場合、Unity はデフォルトで以下のアセンブリを参照します。

  • mscorlib.dll
  • System.dll
  • System.Core.dll
  • System.Runtime.Serialization.dll
  • System.Xml.dll
  • System.Xml.Linq.dll

他のクラスライブラリアセンブリを参照するには、csc.rsp ファイルを使用します。これは、C# コンパイラーに渡せるコマンドライン引数のリストを含む応答ファイルです。csc.rsp ファイルを使用する場合は以下の手順に従ってください。

  1. Unity プロジェクトの Assets フォルダーに csc.rsp という名前のファイルを作成します。
  2. プロジェクトの Assets フォルダーに、(既にそのフォルダー内になければ) 参照したい全てのアセンブリファイルを移動します。
  3. csc.rsp ファイルに、参照したいアセンブリ用のコマンドライン引数を追加します。

例えば、プロジェクトが HttpClient クラスを使用していて、それが System.Net.Http.dll アセンブリで定義されている場合は、アセンブリが存在しない場合に、C# コンパイラーが以下の初期エラーメッセージを生成する可能性があります。


The type `HttpClient` is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

このエラーを解決するには、以下のコマンドライン引数を含む csc.rsp ファイルをプロジェクトに追加します。


-r:System.Net.Http.dll

参照したいアセンブリごとに、適切なコマンドライン引数を含む新しい行を追加します。

プロファイルの切り替え

csc.rsp ファイルを使用してクラスライブラリアセンブリを参照している場合、.NET プロファイルを変更すると、コンパイルに問題が発生することがあります。

もし、.NET プロファイルを .NET Framework から .NET Standard に変更し、csc.rsp ファイルが .NET Standard プロファイルに存在しないアセンブリを参照すると、コンパイルは失敗します。この問題を解決するには、.NET プロファイルを .NET Standard に変更する前に、csc.rsp ファイルを編集して .NET Framework プロファイル専用のアセンブリへの参照を全て削除してください。

安定したスクリプティングランタイム - 既知の制限
C# コンパイラー