如果 Unity 项目使用 Unity 默认不编译的 .NET 类库 API 的一部分,则可以在编译期间向 C# 编译器提供要引用的其他程序集列表。此行为取决于项目所使用的 .NET 配置文件。有关更多信息,请参阅 .NET 配置文件支持。
如果您的项目使用 .NET Standard 配置文件,默认情况下会引用 .NET 类库 API 的所有部分。用户无法引用其他程序集。如果此 API 的一部分似乎丢失,可能是 .NET Standard 未随附此部分。请尝试改用 .NET Framework 配置文件。为避免更改配置文件时出现编译问题,请参阅切换配置文件。
默认情况下,Unity 在您使用 .NET Framework 配置文件时引用以下程序集:
要引用任何其他类库程序集,请使用 csc.rsp 文件:包含可传递给 C# 编译器的命令行参数列表的响应文件。要使用 csc.rsp 文件,请遵循以下说明:
Assets 文件夹中创建名为 csc.rsp 的文件。Assets 文件夹中(如果它们尚未位于此文件夹中)。例如,如果项目使用 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 配置文件的程序集的任何引用。