相关文章推荐
坏坏的眼镜  ·  【Unity】2D ...·  2 周前    · 
爱旅游的手套  ·  Unity2D教程 | ...·  2 周前    · 
谈吐大方的电脑桌  ·  unity ...·  2 周前    · 
近视的手套  ·  什么是逻辑回归?| IBM·  8 月前    · 
严肃的西红柿  ·  实战 - ...·  10 月前    · 

引用动态库的错误

旧版unity编写的程序使用新版unity打开,旧版项目直接将System.Data.dll和System.Drawing.dll复制到了项目下的某文件夹中,因版本原因或与安装的unity下的这两个库发生了冲突,编译失败。unity采用其他类库程序集的正确方法如下:

引用其他类库程序集

如果 Unity 项目需要访问默认情况下未编译的 .NET 类库 API 的一部分,则项目可以通知 Unity 中的 C# 编译器。此行为取决于项目使用的 .NET 配置文件。

.NET Standard 2.0 配置文件

如果项目使用 .NET Standard 2.0 API 兼容性级别,则不需要采取任何其他步骤来使用 .NET 类库 API 的一部分。如果此 API 的一部分似乎丢失,可能是 .NET Standard 2.0 未随附此部分。项目可能需要改用 .NET 4.x API 兼容性级别。

.NET 4.x 配置文件

默认情况下,Unity 在您使用 .NET 4.x API 兼容性级别时引用以下程序集:

mscorlib.dll
System.dll
System.Core.dll
System.Runtime.Serialization.dll
System.Xml.dll
System.Xml.Linq.dll
应使用 csc.rsp 文件来引用所有其他类库程序集。可将此文件添加到 Unity 项目的 Assets 目录,然后使用该文件将其他命令行参数传递到 C# 编译器。例如,如果项目使用 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
应按照以上示例中所述引用类库程序集。必须将这些程序集文件放在项目的 Assets 文件夹内或其中的子文件夹内。
原内容在:
https://docs.unity.cn/cn/2019.4/Manual/dotnetProfileAssemblies.html
(注意要找到对应版本的网站,因为rsp文件名可能不一样

最近在用C#编程时 引用 了DotSpatial的相关功能,编译时遇到Build Error:The type '***' is defined in an assembly that is not referenced的问题。 问题分析: 正如提示所有,你使用了该方法但是却没有对其进行 引用 解决 方案: 在工程references文件夹中右键 Add reference…,找到提示中所指出的内容的dll文件,添加 引用 ,问题 解决 。 //缺少编译器要求的成员“ystem.Runtime.CompilerServices.ExtensionAttribute..ctor” namespace System.Runtime.CompilerServices public class ExtensionAttribute : Attribute { } .NET类 System.Drawing提供了一系列的图形函数,但由于其使用的是GDI接口,与DirectX和OpenGL之间不兼容,在 Unity 中默认是不被支持的。但有时候,我们想在 Unity 中使用一些基于System.Drawing编写的类,而运行平台仅限于PC,这个时候我们可以通过两个步骤将System.Drawing引入 Unity 项目中:1、在 Unity 的安装路径中找到System.Drawing.dll,将其复制到我们的项目文件夹System.Drawing.dll的具体位置:% Unity 根目录%