防止Unity抛出关于需要专业版本来使用我没有使用的特定功能的构建错误

本文关键字:Unity 功能 错误 构建 于需 专业版 本来 防止 出关 | 更新日期: 2023-09-27 18:16:30

到目前为止我所发现的
我使用c#和Unity来制作一个简单的游戏。当我尝试为Android构建这款游戏时,我得到了这个错误:

Error building Player: SystemException: 'System.Net.Sockets' are supported only with Unity Android Pro. Referenced from assembly 'Mono.Data.Tds'.

我的意思是,我需要购买Android Pro许可证来制作一款使用System.Net.Sockets的游戏。这一开始让我很困惑,因为我根本不记得使用过System.Net.Sockets。经过一些研究,我发现using在Unity c#项目的广泛范围导致这个错误,在我的情况下,我正在做:

using System;

通过代理包含System.Net.Sockets使Unity认为我在使用它。



我现在在我的游戏中使用一些开源库。当我在实现这些库之后去为Android构建时,我得到了同样的错误。然后我继续查看这些库的源代码,似乎在每个文件中作者都这样做了:

using System;

这是导致第一部分错误的原因。这些库也没有使用System.Net.Sockets,但却受到using的影响。



有没有办法让Unity认识到我实际上没有使用System.Net.Sockets,所以它不让我购买Android Pro?


编辑
在做了@Roberto的建议之后,我删除了所有的库,然后开始添加它们,直到我得到错误。我已经确定Json。NET是罪魁祸首,正在用System.Net.Sockets做一些事情。然而,当我搜索' System.Net.Sockets '或' 'Mono.Data.Tds '的来源时,没有结果。

防止Unity抛出关于需要专业版本来使用我没有使用的特定功能的构建错误

这是不对的,添加using System 将不会扩展到System.Net.Sockets。这没有多大意义,否则几乎所有游戏都不可能在Unity上免费运行。

事情是你的代码或插件使用System.Net.Sockets。它可能是一个库(dll),但肯定有什么东西在使用它。

您可以通过使用using System创建一个新项目的脚本来测试我的声明,并看到您不会有问题;另外,你可能想创建一个新项目,并越来越多地添加你正在使用的插件,以检查哪个正在使用System.Net.Sockets


我刚刚读到这是发生在Unity 3.5.6。你在用这个版本吗?如果是的话,你就不能更新到Unity 4吗?我使用的是Unity 4,所以没有这个问题。还有3.5.7版本可以试试