unity3d:类型“任务”同时存在于Unity.Tasks和mscorelib中

uurv41yg  于 2023-02-19  发布在  其他
关注(0)|答案(7)|浏览(583)

我用Unity 2019.1.4f1创建了一个空白项目。我导入了用于验证的firebase SDK包和另一个来自here的谷歌登录包。我基本上是试图用firebase在android中实现谷歌登录。但当我导入第二个包(谷歌登录)时,我得到了这个错误(如下)
我没有在项目中做任何其他事情,只是导入。我不知道该怎么做。
程序库\包缓存\统一文本网格程序@2.0.1\脚本\编辑器\TMP_包实用程序. cs(310,17):错误CS 0433:“Unity.Tasks,版本=0.0.0.0,区域性=中性,公钥标记=null”和“mscorlib,版本=4.0.0.0,区域性=中性,公钥标记= b77 a5 c561934 e089”中都存在类型“Task”

pgx2nnw8

pgx2nnw81#

它简单,
后藤:您的项目文件夹\资源\解析\插件
删除dotNet45文件夹之外的所有文件

并且应当解决该误差。

blmhpbnm

blmhpbnm2#

我也遇到过同样的问题,现在已经修复了。看起来这个版本的TextMeshPro引用了你项目中的所有库。你可以通过改变缓存的包文件来改变它。更准确地说,你可以添加下面这行
"overrideReferences": true,

“(您的项目目录)\库\包缓存\com.unity.textmeshpro@2.0.1\脚本\编辑器
统一.文本网格专业.编辑器.asmdef”
通过在文本编辑器中打开它(确保您具有写入该文件的访问权限)。
这将使TextMesh Pro编辑器代码仅引用此文件中的程序集,而不是项目中所有已编译的程序集。文件将如下所示:

{
        "name": "Unity.TextMeshPro.Editor",
        "references": [
            "Unity.TextMeshPro",
            "Unity.ugui",
            "Unity.ugui.Editor"
        ],
        "optionalUnityReferences": [],
        "overrideReferences": true,
        "includePlatforms": [
            "Editor"
        ],
        "excludePlatforms": []
    }

第二个选择是删除TextMesh Pro包,如果你确定项目没有使用它,你可以使用顶部菜单“窗口-〉包管理器”,然后在Packages窗口的列表中选择TextMesh Pro并点击“删除”。

vu8f3i0k

vu8f3i0k3#

您可能遇到的问题是兼容层将.NET 4.x功能引入.NET 3.x运行时,称为Parse。在Firebase中,这就是为什么有dotnet3和dotnet4文件夹。
当你导入插件时,假设你使用的是.NET 4.x运行时(Unity 2019中的默认设置),确保你从Firebase的dotnet4文件夹中获取了Unity包。然后,当你导入Google SSO包时,排除Parse目录(Firebase插件应该已经拉入了必要的部分)。

c3frrgcw

c3frrgcw4#

只需从软件包管理器更新textMeshPro即可。

ctzwtxfj

ctzwtxfj5#

类似于罗尼·比格勒的回答,但有点澄清(抱歉,我还不能发表评论)。
您不必删除dotNet45文件夹以外的所有文件。您需要删除Unity.Compat.dll和Unity.Tasks.dll。如果您只有这些文件,请确保您可以删除dotNet45以外的所有文件。但如果您还有其他文件,则不需要删除。
另外值得一提的是,我只导入了google的登录包,而没有firebase的,所以我根本没有dotNet45文件夹,但是删除了Compat和Tasks的dll文件夹就解决了这个问题。

kulphzqa

kulphzqa6#

转到您的Assets\Parse\Plugins文件夹并删除Unity.Tasks.dll文件。

ddarikpa

ddarikpa7#

向声明中添加命名空间。

SomeNameSpace.Task task = new SomeNameSpace.Task();

例如:

Unity.Tasks.Task task = new Unity.Tasks.Task();

好的。

相关问题