我创建了that simple xamarin forms app(仅使用iOS)。除了引用signalr nuget包之外,它什么也没做。
当我从我的电脑上的Visual Studio(连接到我的mac)构建Debug | iPhone
时,它构建得很好,尤其是Microsoft.AspNetCore.Sockets.Abstractions.dll
(以及所有其他dll)的AOT编译。
但是,当我在Visual Studio for Mac上构建相同的解决方案时,也在Debug | iPhone
上,我收到以下错误:
无法AOT组装 ' /Users/francois/AotTests/AotTests/AotTests.iOS/obj/iPhone/Debug/mtouch-cache/Build/Microsoft.AspNetCore.Sockets.Abstractions.dll' (MT3001)(AotTests.iOS)}
答案 0 :(得分:3)
的Bonjour,
这已在https://github.com/xamarin/xamarin-macios/pull/3791中修复,我们正试图在下一个稳定版本(即15.7)中获取它。
您可以在此处使用我们的连续版本尝试修复:https://github.com/xamarin/xamarin-macios/wiki#continuous-builds 在这种情况下,您需要来自master的构建(希望很快就会从我们之前的15.7以前的alpha / beta中获得)。
您添加的NuGet包(Microsoft.AspNetCore.SignalR.Client
)是通过新的“包引用”机制添加的,并且具有包含/lib
和/ref
文件夹的依赖项(其他包)。
在Mac上,MSBuild的ResolveAssemblyReferences
目标解析了引用程序集(在/ref
中),将它们传递给csc
进行编译,因为mtouch
(我们的打包工具) )还给了那些参考组件
问题在于我们无法对它们进行评估,它们只是外立面而且不能被打包。
我们通过剥离正确的引用程序集解决了Xamarin.iOS中的问题(未来可能会有更常见的msbuild修复),由_ReferencesFromNuGetPackages
中的Nuget目标作为输出提供。