使用Visual Studio中内置的外部dll统一构建UWP应用,会在Task类上产生错误

时间:2019-02-15 13:41:24

标签: c# unity3d uwp visual-studio-2017

我在Unity for Hololens中创建了一个UWP应用程序,并使用Tasks(System.Threading.Tasks)在Assets中添加了一个类。该类的代码由以下编译指令包围:

#if WINDOWS_UWP
....在这里编码
#endif

因为它只需要在设备上工作即可。

我已在Hololens上成功部署了该应用程序。

但是,当我尝试将类移动到外部dll中时,在Visual Studio中生成了一个编译类库(通用Windows)项目,并在Unity中引用了它,编译时出现以下错误:

...类型“任务<>”声称它是在“ System.Runtime”中定义的,但找不到。

似乎它没有使用System.Threading.Tasks,但是它尝试使用System.Runtime中定义的Task类。

为什么只有当该类位于外部dll中并且当该类直接位于资产文件夹中时我才能工作时,这种情况才会发生?

由于我需要外部dll中的代码,我该如何解决?

1 个答案:

答案 0 :(得分:0)

问题出在UWP库的最小SDK版本中。

默认情况下,Unity在构建UWP应用程序时使用 Windows 10(10.0; Build 10240),而UWP库的最低版本为 Windows 10 Creators Update(10.0; Build 15063)< / em>。

在Visual Studio中将UWP类库的SDK最低版本设置为 Windows 10(10.0; Build 10240),然后在Unity中重新导入dll,解决了我的问题。