2013-06-12 41 views
1

我想在我的Assembly-CSharp-firstpass项目中使用Mono.Data.Sqlite。在MonoDevellop中,我右键单击该项目,编辑引用,并将Mono.Data.Sqlite添加到引用。如果我从单声道构建,一切都会顺利进行,并且不会产生错误。 当我回到Unity3D时,我总是得到错误,指出找不到Mono.Data.Sqlite。如果我然后关闭Unity + Mono并重​​新打开这两个,那么对Mono.Data.Sqlite的引用就消失了! 任何人都知道发生了什么事?Unity3D在MonoDevelop中删除项目引用

回答

0

因此,进一步谷歌搜索和文件阅读: Unity3D重建项目文件,每次在场景/资产的变化。这意味着添加的引用正在重置,而Unity无法找到它们。

解决方案是找到所需的DLL(在我的情况下是Mono.Data.Sqlite)并将它们复制到项目的Asset文件夹中。

1

如果你想访问DLLs,你需要把它们放到你的Assets文件夹中的一个名为“Plugins”的文件夹中 - 插件首先被加载,所以插件中的dotnet程序集在你想写的时候可以使用代码反对他们。

+0

有趣的事实:引用程序集需要直接在Assets文件夹中,而不是插件文件夹。 –

+2

这取决于你想要他们加载。插件首先加载,所以这些DLL在编辑器代码以及游戏代码中都可用;编辑器文件夹中的任何内容随后都会加载,因此它在编辑器代码中可用 - 但不会构建到最终游戏中。之后是资产的其余部分。所以,如果你不想在编辑器中使用代码,Assets就没有问题,但如果你想在工具和游戏中使用它,那么它需要插件。如果代码不受管理,您还需要使用插件。 http://docs.unity3d.com/Documentation/ScriptReference/index.Script_compilation_28Advanced29.html – theodox