Xamarin.Forms – XamlCompilation MissingMethodException
我想提高我的Xamarin.Forms UWP应用程序的性能,因为它在发布模式下非常慢(“.NET native”选中)。 所以我在PCL项目的汇编级别应用XAMLC:
[assembly: XamlCompilation (XamlCompilationOptions.Compile)] namespace MyApp { }
但是使用此属性我收到运行时错误:
“未找到方法:’Void Xamarin.Forms.Xaml.Internals.SimpleValueTargetProvider..ctor(System.Object [])’。”
根据这个:
https://github.com/xamarin/Xamarin.Forms/blob/master/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml.Internals/SimpleValueTargetProvider.xml
SimpleValueTargetProvider类有2个版本:
- 1.5.0.0 – 带有一个参数System.Object []的构造函数
- 2.0.0.0 – 具有2个参数System.Object []和System.Object的构造函数
我使用Xamarin.Forms 2.3.3.163-pre3所以我在我的项目中使用第二个版本(当我导航到Xamarin.Forms.Xaml.Internals中的SimpleValueTargetProvider时,我可以看到带有2个参数的构造函数)。 我的理解是,显然“某些东西”仍在调用SimpleValueTargetProvider 1.5.0.0,但我不知道它是什么。
我删除了所有第三方组件,但没有帮助。 我使用了融合日志来了解发生了什么,但这就是我得到的(说实话我不知道这是否与我面临的问题有关):
> *** Assembly Binder Log Entry (10/26/2016 @ 9:09:42 PM) *** > > The operation failed. Bind result: hr = 0x80070002. The system cannot > find the file specified. > > Assembly manager loaded from: > C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll Running under > executable C:\Program Files (x86)\Microsoft Visual > Studio\VS15Preview\Common7\IDE\devenv.exe > --- A detailed error log follows. > > === Pre-bind state information === LOG: DisplayName = XamlDesignerFaultInjection (Partial) WRN: Partial binding information > was supplied for an assembly: WRN: Assembly Name: > XamlDesignerFaultInjection | Domain ID: 1 WRN: A partial bind occurs > when only part of the assembly display name is provided. WRN: This > might result in the binder loading an incorrect assembly. WRN: It is > recommended to provide a fully specified textual identity for the > assembly, WRN: that consists of the simple name, version, culture, and > public key token. WRN: See whitepaper > http://go.microsoft.com/fwlink/?LinkId=109270 for more information and > common solutions to this issue. LOG: Appbase = file:///C:/Program > Files (x86)/Microsoft Visual Studio/VS15Preview/Common7/IDE/ LOG: > Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = > NULL LOG: AppName = devenv.exe Calling assembly : (Unknown). > === LOG: This bind starts in default load context. LOG: Using application configuration file: > C:\Users\blaze\AppData\Local\Microsoft\VisualStudio\15.0_2f751565\devenv.exe.config > LOG: Using host configuration file: LOG: Using machine configuration > file from > C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. > LOG: Policy not being applied to reference at this time (private, > custom, partial, or location-based assembly bind). LOG: Attempting > download of new URL file:///C:/Program Files (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/XamlDesignerFaultInjection.DLL. LOG: > Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/XamlDesignerFaultInjection/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PublicAssemblies/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PublicAssemblies/XamlDesignerFaultInjection/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/XamlDesignerFaultInjection/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/XamlDesignerFaultInjection/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Platform/Debugger/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Platform/Debugger/XamlDesignerFaultInjection/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Platform/DiagnosticsHub/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Platform/DiagnosticsHub/XamlDesignerFaultInjection/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/DataCollectors/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/DataCollectors/XamlDesignerFaultInjection/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/DataCollectors/x86/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/DataCollectors/x86/XamlDesignerFaultInjection/XamlDesignerFaultInjection.DLL. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/XamlDesignerFaultInjection.EXE. LOG: > Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/XamlDesignerFaultInjection/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PublicAssemblies/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PublicAssemblies/XamlDesignerFaultInjection/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/XamlDesignerFaultInjection/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/XamlDesignerFaultInjection/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Platform/Debugger/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Platform/Debugger/XamlDesignerFaultInjection/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Platform/DiagnosticsHub/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/CommonExtensions/Platform/DiagnosticsHub/XamlDesignerFaultInjection/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/DataCollectors/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/DataCollectors/XamlDesignerFaultInjection/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/DataCollectors/x86/XamlDesignerFaultInjection.EXE. > LOG: Attempting download of new URL file:///C:/Program Files > (x86)/Microsoft Visual > Studio/VS15Preview/Common7/IDE/PrivateAssemblies/DataCollectors/x86/XamlDesignerFaultInjection/XamlDesignerFaultInjection.EXE. > LOG: All probing URLs attempted and failed.
这是Xamarin.Forms或XamlCTask中的错误吗? 有没有人遇到过这个问题或知道如何修复它?
- Windows 10 64位
- 视觉学习15预览5
- Xamarin 4.2.1.14
- Xamarin.Forms 2.3.3.163-pre3
提前致谢
这可能是IDE或项目级别的缓存问题。
如果它在IDE级别: – 执行清理 – 重新启动VS或XS – 重建
但你可能已经尝试过了。
我的猜测是,其中一个nuget更新未正确清理,并且您在解决方案的不同项目中引用了不同版本的XF,或者一个.csproj
文件引用了旧的.targets
文件。
一些人工清理大家有望解决这个问题。
如果您的项目依赖于使用XamlC的第三方程序集,并且该程序集是基于XF <2.3.3构建的,那么您仍然可以解决此问题。
存在修复程序,将作为XF 2.3.3的第一个服务版本的一部分发布