【问题标题】:Unity3d iOS il2cpp Mono.Cecil.AssemblyResolutionException Failed to resolve assembly System.ThreadingUnity3d iOS il2cpp Mono.Cecil.AssemblyResolutionException 无法解析程序集 System.Threading
【发布时间】:2015-10-27 16:41:48
【问题描述】:

Unity3d 4.6.7p2 iOS il2cpp 通用 。网 剥离禁用 我们在构建 iOS 版本时遇到了错误。
奇怪的是,这个错误出现在我们办公室的所有计算机上的某个时间点,如果我们切换到 Git 中构建没有问题的提交,则错误存在。
所以我们认为这个错误与我们的更改无关。 我们尝试切换到较旧的提交,重新启动 Unity,清理 Library 文件夹,没有任何变化。 什么会导致这样的错误?

Failed running   /Applications/Unity/Unity.app/Contents/Frameworks/Tools/UnusedByteCodeStripper2/UnusedBytecodeStripper2.exe -out "/PATH/Temp/StagingArea/Data/Managed" -l none -c link -x "/Applications/Unity/Unity.app/Contents/Frameworks/Tools/UnusedByteCodeStripper/native_link.xml" -f "/Applications/Unity/Unity.app/Contents/Frameworks/il2cpp/LinkerDescriptors" -x "/PATH/Temp/StagingArea/Data/Managed/../platform_native_link.xml" -x "/PATH/Temp/StagingArea/Data/methods_pointedto_by_uievents.xml" -x "/PATH/Assets/link.xml" -d "/PATH/Temp/StagingArea/Data/Managed" -a  "/PATH/Temp/StagingArea/Data/Managed/Assembly-CSharp-firstpass.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/Assembly-CSharp.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/Assembly-UnityScript-firstpass.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/Assembly-UnityScript.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/UnityEngine.UI.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/IFacebook.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/Glow11.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/HOTweenMicro.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/ArabicSupport.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/DecalSystem.Runtime.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/P31RestKit.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/P31WinPhoneFlurry.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/P31WinPhoneSocialNetworking.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/P31WinPhoneStore.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/Photon3Unity3D.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/OUR_COMPANY.Phone.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/TPL.dll" -a  "/PATH/Temp/StagingArea/Data/Managed/websocket-sharp.dll"

stdout;
Fatal error in Mono CIL Linker
Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'System.Threading, Version=1.0.2856.102, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
  at Mono.Linker.LinkContext.Resolve (IMetadataScope scope) [0x00000] in <filename unknown>:0 
  at Mono.Linker.Steps.ResolveFromXmlStep.ProcessReferences (Mono.Cecil.AssemblyDefinition assembly, Mono.Linker.LinkContext context) [0x00000] in <filename unknown>:0 
  at Mono.Linker.Steps.ResolveFromXmlStep.GetAssembly (Mono.Linker.LinkContext context, System.String assemblyName) [0x00000] in <filename unknown>:0 
  at Mono.Linker.Steps.ResolveFromXmlStep.ProcessAssemblies (Mono.Linker.LinkContext context, System.Xml.XPath.XPathNodeIterator iterator) [0x00000] in <filename unknown>:0 
  at Mono.Linker.Steps.ResolveFromXmlStep.Process () [0x00000] in <filename unknown>:0 
  at Mono.Linker.Steps.BaseStep.Process (Mono.Linker.LinkContext context) [0x00000] in <filename unknown>:0 
  at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x00000] in <filename unknown>:0 
  at Mono.Linker.Driver.Run () [0x00000] in <filename unknown>:0 
  at Mono.Linker.Driver.RunDriver (Mono.Linker.Driver driver) [0x00000] in <filename unknown>:0 
stderr:

UnityEngine.Debug:LogError(Object)
UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase)
UnityEditorInternal.AssemblyStripper:RunAssemblyLinker(IEnumerable`1, String&, String&, String, String)
UnityEditorInternal.AssemblyStripper:StripAssembliesTo(String, String, String&, String&, String, String, IEnumerable`1)
UnityEditorInternal.AssemblyStripper:Strip(String, String, String&, String&, String, String, IEnumerable`1)
UnityEditorInternal.AssemblyStripper:Strip(String[], String[], String, String, String&, String&, String, String, IEnumerable`1)
UnityEditorInternal.IL2CPPBuilder:RunAssemblyStripper(IEnumerable, String, String[], String[], String)
UnityEditorInternal.IL2CPPBuilder:StripAssemblies(IEnumerable`1, String)
UnityEditorInternal.IL2CPPBuilder:Run()
UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action`1, RuntimeClassRegistry)
UnityEditor.HostView:OnGUI()

链接.xml:

<linker>
<assembly fullname="mscorlib">
    <namespace fullname="System.Security.Cryptography" preseve="all"/>
</assembly>

【问题讨论】:

  • 据我所知,您的 link.xml 有问题。请张贴。
  • @Puneet 发布了它。 link.xml 从初始提交(我在 Git 中签入)从未更改过。但正如我所描述的,我们之前可以构建的提交,现在无法构建。
  • 此错误意味着某些东西正在引用 System.Threading 程序集,但在您的项目中找不到该程序集。我不确定原因,但这些问题可能会有所帮助: 1. 您是否希望引用 System.Threading? (可能是插件) 2. System.Threading.dll 是否存在于您的项目或您正在使用的 .NET 配置文件中(Unity 中的“Api 级别兼容性”设置)
  • @Petr 尝试将 添加到您的 link.xml。

标签: ios unity3d il2cpp


【解决方案1】:

我的同事通过用 Parse 库替换 TPL.dll 中的功能,并从项目中删除 TPL.dll 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 2016-11-07
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 2013-10-11
    • 1970-01-01
    相关资源
    最近更新 更多