Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 类型任务<&燃气轮机;存在于Unity.Tasks和mscorelib(Unity问题)中_Visual Studio_Firebase_Unity3d_Namespaces_Task - Fatal编程技术网

Visual studio 类型任务<&燃气轮机;存在于Unity.Tasks和mscorelib(Unity问题)中

Visual studio 类型任务<&燃气轮机;存在于Unity.Tasks和mscorelib(Unity问题)中,visual-studio,firebase,unity3d,namespaces,task,Visual Studio,Firebase,Unity3d,Namespaces,Task,我遇到了一个令人恼火的问题。我正在项目中使用System.Threading.Tasks。我最近导入了一个新插件(GoogleFirebase),它附带了自己的dll(Unity.Tasks)。好吧,谷歌的天才们似乎没有意识到Unity完全支持System.Threading.Tasks,并决定将该名称空间与他们的dll捆绑在一起。我无法摆脱团结。任务或它打破了火源。我无法使用外部别名引用mscorelib,或者出现错误,指出我的代码没有返回任务(在我使用别名之前确实返回了任务)。我不知道在这里

我遇到了一个令人恼火的问题。我正在项目中使用System.Threading.Tasks。我最近导入了一个新插件(GoogleFirebase),它附带了自己的dll(Unity.Tasks)。好吧,谷歌的天才们似乎没有意识到Unity完全支持System.Threading.Tasks,并决定将该名称空间与他们的dll捆绑在一起。我无法摆脱团结。任务或它打破了火源。我无法使用外部别名引用mscorelib,或者出现错误,指出我的代码没有返回任务(在我使用别名之前确实返回了任务)。我不知道在这里该做什么。我真的很想使用firebase,因为它很容易实现,但我还需要在项目中使用任务进行异步编程。有人有什么好主意吗

注意:我在IL2CPP后端使用Unity 2020 beta 2和.Net 4.0。我尝试过.NET2.0、mono后端和Unity 2019.x。没有成功。感谢您的帮助

另外:我确实已经检查了所有其他堆栈溢出答案,它们都不适用于我的实例。我都试过了


出于向后兼容性的原因,Firebase SDK中提供了重复任务实现。如果导入了
dotnet4
文件夹,默认情况下不应启用该文件夹,但是如果您丢失了
.meta
文件(或者如果您未使用
.meta
文件,则为
目录),或者已手动调整生成设置,则不应启用该文件夹(例如:在写入
.asmdef
文件时拉入错误的依赖项)您可能会再次拉入错误的依赖项

检查
Assets/Parse/Plugins

确保禁用了基本级别的
Unity.Tasks
Unity.Compat
(如果需要,可以删除这些任务)

并确保启用了
dotNet45
文件夹中的DLL:

你该走了

旁白:你可能想知道为什么我们要包含
Unity.Tasks
。Firebase不会针对普通的任务实现进行编译,
dotNet45
实现转发一些函数,并确保Firebase可以在不重写任何代码的情况下使用

既然我已经给了你这个简短的概述,你还可以做一件事。刚刚发布。如果你使用的是Unity的受支持版本(2018.4或更新版本),您可以将Firebase移动到UPM中。然后,所有这些文件都将移动到
文件夹中,并有望为您的后续工作自动保持干净。有一些小问题(例如:修补
gradleTemplate.gradle
在我上次检查时不太起作用,这是一个可选功能),但总体而言,它可能是一个更干净的集成(并且应该随着时间的推移而改进)

我希望这有帮助


--Patrick

您是否可以将Unity.Tasks.dll标记为不在检查器中自动引用?预编译的firebase dll仍会看到它,但您的代码不会看到。老实说,我不太确定如何做到这一点。我以前从未遇到过这个问题,所以我从来没有这样做过。我没有引用Unity.Tasks.dll,Unity抛出了大量错误因为firebase找不到dllExcellent!我已经从我的项目中完全删除了firebase,并用软件包管理器安装了它。现在我可以使用任务而不出现编译错误了!非常感谢!我还应该让你知道(我也在你的github上留下了评论)在Unity 2020 beta版中,Firebase在Android版本上不起作用。我不得不降级到Unity 2019 stable,该版本可以工作。在Unity 2020发布之前,我可能想了解一下这一点;)爱你们的插件!继续努力!