我正在尝试在 Unity 上使用 Web 服务。 我使用 svcutil 生成一个代理类,但是代理类使用的是"System.Threading.Tasks"。
我注意到System.Threading.Tasks在.Net 3.5上不可用。 所以我去了播放器设置,我改成了.Net 4.x
但是现在我有另一个问题,我找不到解决方法,我需要使用 System.Web.dll 和 System.Web.Services.dll 来使我的 Web 服务正常工作,但是,程序文件\Unity\Editor\Data\Mono\lib\mono\2.0 中包含的 dll 都是 .Net 3.5 的目标。
所以这意味着我不能在 .Net 4.x 上使用它们
我一直在寻找安静的时间,但找不到任何答案。 如果需要,我可以在此处将代码添加到代理类中,但我认为它没有用。我应该在某个地方下载这些 dll 吗? 有人在某处见过这些问题吗?
您使用了错误的 dll 版本。
将Api Compatibility Level
更改为 Net 4.x 后,您必须将System.Web.dll
和System.Web.Services.dll
文件从<UnityInstallationDirectory>EditorDataMonoBleedingEdgelibmono4.5
复制到<Project>Assets
路径。
就是这样。重新启动 Visual Studio 和 Unity。
还有另一种链接缺失库的方法,如本 Unity 文档中所述。
创建一个名为csc.rsp的文件,并将以下 2 行放入其中:
-r:System.Web.dll
-r:System.Web.Services.dll
是的,您最好将兼容级别设置为 .NET 4.x 在某些情况下,您可能还希望重新启动 Unity 或 VS。