使用Unity 3D时Visual Studio 2017中缺少添加引用 - 需要Npgsql.dll

Jam*_*oux 11 dll unity-game-engine visual-studio

我在Visual Studio 2017中安装了Unity 2017.我试图通过解决方案资源管理器将外部DLL添加到Visual Studio项目中.当我右键单击引用时,"添加引用"选项完全丢失!

我正在尝试使用NpgSQL.因此,需要添加npgsql.dll.

任何人都能发光吗?

Bri*_*oss 25

Add Reference...在这种情况下,它处于不同的位置.


Unity活动:

Assets文件夹中创建一个名为Plugins的文件夹作为子文件夹.(资产\插件...)

接下来将DLL复制到此插件文件夹.您可以使用Windows资源管理器执行此操作,或者将其拖到Unity编辑器中的文件夹中,如下所示:

在此输入图像描述


Visual Studio中的活动:

单击项目中的Analyzers,如下所示,然后从菜单中单击Project,然后导航到Add Reference ...:

在此输入图像描述

现在浏览到你的DLL:

在此输入图像描述

并且......它是:

在此输入图像描述

  • 您已经说了,但我只想重申一下,首先单击“分析器”非常关键。 (2认同)

Jam*_*oux 5

接受Brien的回答(谢谢Brien!)。

我要添加与Npgsql.dll相关的我自己的答案,因为这显然是整个Internet上常见的问题,文档不多。如果您从Google获得有关Npgsql.dll的信息,请继续阅读:

Unity(出于某些未知原因)在应用程序mono / 2_0文件夹中捆绑了它自己的npgsql.dll。有人报告与此冲突。

当前,许多npgsql.dll版本不能与Unity一起使用。尝试将它们包括在Unity的资产中将导致Unity引发Type错误。这就是让我认为需要将文件添加为C#中的引用的原因。这就是为什么我来到这里并询问有关添加引用的问题。但是,就Unity而言,这对我来说完全是错误的。

据我所知,Unity坚持为您管理所有项目属性和引用。必须通过Unity资产添加托管DLL和非托管DLL。甚至Visual Studio项目属性也无法在Visual Studio for Unity中更改。而且,如果您尝试编辑.csproj文件(例如,禁用编译器警告),则下次加载Unity项目时,Unity将完全覆盖.csproj文件。

任何使Npgsql.dll在Unity中无法正常工作的人都需要使用正确的Unity工作流程,将npgsql.dll放入Unity资产中。如果收到错误,则是npgsql.dll版本冲突。首先尝试其他版本的dll。

这位绅士提供了一个特定于Unity的版本来解决名称空间冲突(只需从Github链接的bin文件夹中提取dll)即可: Unity NPGSQL.DLL

Unity 2017当前允许您将.NET 4.6更改为实验设置。有些人喜欢使用该设置来使npgsql.dll的新版本正常工作,但是他们报告了间歇性的结果。现在,我已经解决了Unitynpgsql.dll的问题。这是一个较旧的版本,因此希望我不会遇到我不支持的任何功能。如果是这样,我可能只会解决它们。

对于任何其他试图使npgsql.dll在Unity中工作的人:不要绝望,只需尝试解决版本冲突。另外这是与此相关的另一个相关主题: 准系统主服务器Npgsql.dll问题-2018年1月