导出Windows应用程序文件(EXE)时使用SQLite数据库错误的Unity(5.5)插件

时间:2018-04-23 13:05:42

标签: c# unity3d sqlite

我正在使用Unity 5.5.6f1开发Unity插件

插件包装SQLite调用并提供在Unity中调用的函数

// Unity Plugin
public void doSomething()
{
    // Query DB.
}

在Unity游戏项目中使用。

// Unity
unityPluginInstance.doSomething();

我将插件构建到DLL中,将它放在Unity游戏项目中,当我在Unity Editor上单击“播放”时,它运行良好。

然而,当我尝试将Unity游戏项目导出到EXE文件中时,会引发很多错误。

ArgumentException: The Assembly System.Data.Entity is referenced by System.Data.SQLite.Linq ('Assets/Plugins/MyPlugin/System.Data.SQLite.Linq.dll'). But the dll is not allowed to be included or could not be found.
UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1 alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2 cache, BuildTarget target) (at C:/buildslave/unity/build/Editor/Mono/AssemblyHelper.cs:147)
UnityEditor.AssemblyHelper.FindAssembliesReferencedBy (System.String[] paths, System.String[] foldersToSearch, BuildTarget target) (at C:/buildslave/unity/build/Editor/Mono/AssemblyHelper.cs:184)
UnityEditor.HostView:OnGUI()

我在Google上搜索过很多但找不到任何可行的解决方案。

任何人都可以教我如何解决此错误吗?非常感谢你。

1 个答案:

答案 0 :(得分:1)

最后,在将我的问题发布到Stackoverflow之后,我找到了解决方案。

在Reference中,选择System.Data.Entity并编辑其属性" Copy Local"真实。

构建插件后,System.Data.Entity.dll将出现在输出文件夹中。我们将此文件与MyPlugin.DLL和其他文件一起添加到Unity游戏/应用程序项目中。

问题已解决。

enter image description here