System.IO.FileNotFoundException:在InitializeComponent上由自己的控件引
本文关键字:自己的 控件 InitializeComponent IO FileNotFoundException System | 更新日期: 2023-09-27 18:20:54
我在创建自己的控件时遇到了问题:我试图使网格视图类似于列表视图。问题出现在页面的xaml文件中——当我初始化组件应用程序时,该页面崩溃,文件未找到异常。
错误说明:System.IO.FileNotFoundException无法加载文件或程序集"FastFood"或其依赖项之一。系统无法找到指定的文件。
调用堆栈:
_at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity)
[0x0081]在/用户/builder/data/lanes/2320/1f068b49/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/corlib/System/AppDomain.cs:706
at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef) [0x00000] in
/用户/builder/data/lanes/2320/1f068b49/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/corlib/System/AppDomain.cs:674
at System.Reflection.Assembly.Load (System.Reflection.AssemblyName assemblyRef) [0x00000] in
/用户/builder/data/lanes/2320/1f068b49/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/corlib/System.Reflection/Assembly.cs:551
at Xamarin.Forms.Xaml.XamlParser.GetElementType (Xamarin.Forms.Xaml.XmlType xmlType, IXmlLineInfo xmlInfo,
System.Reflection.Assembly currentAssembly,Xamarin.Forms.Xaml.XamlParseException&异常)[00x00133]在:0在中的Xamarin.Forms.Xaml.CreateValuesVisitor.Visit(Xamarin.Forms.Xaml.ElementNode节点,INode parentNode)[0x002a]:0在Xamarin.Forms.Xaml.ElementNode.Accept(IXamlNodeVisitor访问者,INode parentNode)[0x00b1]中:0位于Xamarin.Forms.Xaml.ElementNode.Accept(IXamlNodeVisitor访问者,INode parentNode)[0x0089],位于:0在Xamarin.Forms.Xaml.RootNode.Accept(IXamlNodeVisitor访问者,INode parentNode)[0x0064]中:0在中的Xamarin.Forms.Xaml.XamlLoader.Load(Xamarin.Forms.BindableObject视图,System.String-Xaml)[0x00a4]:0在Xamarin.Forms.Xaml.XamlLoader.Load(Xamarin.Forms.BindableObject视图,System.Type调用类型)[0x002e]在:0位于Xamarin.Forms.Xaml.Extensions.LoadFromXaml[CategoryPage](FastFood.CategoryPage视图,System.Type callingType)[0x0000],位于:0在FastFood.CategoryPage.InitializeComponent()[0x000c]in/Users/Slider/Coffettab/iOS/obj/iPhoneSimulator/Debug/FastFood.iOS.Users.Slider.coffettab.FastFood.CatgoryPage.xaml.g.cs:33
at FastFood.CategoryPage..ctor () [0x0001a] in /Users/Slider/Coffetab/FastFood/CategoryPage.xaml.cs:25 at FastFood.MenuPage..ctor () [0x0004b] in /Users/Slider/Coffetab/FastFood/MenuPage.xaml.cs:14 at FastFood.MainPage.OnLogin (System.Object sender, System.EventArgs e) [0x0002f] in
/用户/滑块/咖啡标签/快餐/主页.xaml.cs:29位于Xamarin.Forms.Button.Xamarin.Forms.IButtonControllerSendClicked()[0x0020]在:0位于Xamarin.Forms.Platform.iOS.ButtonRenderer.OnButtonTouchUpInside(System.Object sender,System.EventArgs EventArgs)[0x000e],位于:0在/Users/builder/data/lanes/2320/1f068b49/source/maccore/src/UIKit/UIControl.Activated()[0x0007]中的UIKit.UIControlEventProxy.Activated()
at (wrapper managed-to-native) UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr) at UIKit.UIApplication.Main (System.String[] args, IntPtr principal, IntPtr delegate) [0x00005] in
/Users/builder/data/lanes/2320/1f068b49/source/maccore/src/UIKit/UIApplication.cs:77
at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00038] in
/用户/builder/data/lanes/2320/1f068b49/source/maccore/src/UIKit/UIApplication.cs:61
at FastFood.iOS.Application.Main (System.String[] args) [0x0001a] in /Users/Slider/Coffetab/iOS/Main.cs:23_
我做错了什么?
几年后(对你来说),但我在论坛上找到了一个解决方案。
我在其他组件和NuGet中也遇到过这种情况包裹。你可能不得不接受这样一个事实包括实例化ExtendedSlider的伪代码行。它不需要做任何事情,只要在某个地方引用它就可以了。
当您仅在XAML中使用它时,编译器不会检测到引用,从而排除所需的dll。直到组件找到了一些解决方案,您将不得不使用此解决方案。
来源:https://forums.xamarin.com/discussion/comment/187222/#Comment_187222
所以只要在代码中的任意位置添加一个随机的var foo = new YourComponentFromTheAssemblyInQuestion();
,它就不会再抱怨了。
也许这会帮助其他人在以后遇到同样的问题,就像我一样。