gpt4 book ai didi

visual-studio - 类型 Task<> 存在于 Unity.Tasks 和 mscorlib(Unity 问题)

转载 作者:行者123 更新时间:2023-12-04 17:01:22 26 4
gpt4 key购买 nike

我遇到了一个令人恼火的问题。我在我的项目中使用 System.Threading.Tasks。我最近导入了一个新插件(Google Firebase),它带有自己的 dll(Unity.Tasks)。好吧,似乎 Google 的天才们没有意识到 Unity 完全支持 System.Threading.Tasks 并决定将该命名空间与他们的 dll 捆绑在一起。我无法摆脱 Unity.Tasks 否则它会破坏 Firebase。我不能使用 extern 别名来引用 mscorelib 或者我收到错误消息,指出我的代码没有返回 Task<>(在我使用别名之前确实这样做了)。我不知道我应该在这里做什么。我真的很想使用 firebase,因为它很容易实现,但我还需要在我的项目中使用 Tasks 进行异步编程。有人有什么好主意吗?

注意:我将 Unity 2020 beta 2 和 .Net 4.0 与 IL2CPP 后端一起使用。我尝试过 .NET 2.0、mono 后端和 Unity 2019.x。没有成功。任何和所有帮助表示赞赏。

另外:我确实检查了所有其他 Stack Overflow 答案,但没有一个在我的实例中有效。我已经尝试了所有这些。

Here is a screenshot of the error thrown in Visual Studio

最佳答案

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

查询 Assets/Parse/Plugins
<code>Assets/Parse/Plugins</code> is selected

确保基础水平 Unity.TasksUnity.Compat被禁用(如果需要,您可以删除这些)。

Select platforms for plugin on <code>Unity.Tasks</code> is unchecked for all platforms

并确保 dotNet45 中的 dll文件夹已启用:

Any Platform selected for Unity.Tasks in <code>Parse/Plugins/dotNet45</code>

你应该很高兴去!

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

既然我已经向您提供了这个简要概述,您还可以做一件事。 Support for the Unity Package Manager刚刚被释放。如果您使用的是受支持的 Unity 版本(2018.4 或更高版本),则可以将 Firebase 移至 UPM。然后所有这些文件将移动到 Library文件夹,希望以后会自动保持清洁。有一些小问题(例如:我上次检查时修补 gradleTemplate.gradle 并没有完全奏效,这是一个可选功能),但总体上它可能是一个更清晰的集成(并且应该随着时间的推移而改进)。

我希望这有帮助!

——帕特里克

关于visual-studio - 类型 Task<> 存在于 Unity.Tasks 和 mscorlib(Unity 问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60897443/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com