在我的Xamarin解决方案中,我在Controls
解决方案文件夹中添加了一个新的库项目。在我XAML
的{{1}}中,我调用了我的组件,一切正常。
我不知道在更新Views
和iOS 10
之后今天是否有任何变化,但如果我尝试编译我的解决方案,则不会发生错误
System.Reflection.TargetInvocationException:抛出了异常 通过调用的目标。 ---> Xamarin.Forms.Xaml.XamlParseException:位置43:38。输入甜甜圈 在xmlns中找不到 CLR-名称空间:Mobile.Controls.Wheel;装配= Mobile.Controls.Wheel
在 Xamarin.Forms.Xaml.Internals.XamlTypeResolver.Xamarin.Forms.Xaml.IXamlTypeResolver.Resolve (System.String qualifiedTypeName,System.IServiceProvider 的ServiceProvider)
Visual Studio for Mac
页面定义如下:
XAML
<ContentPage [...]
xmlns:ctl="clr-namespace:Mobile.Controls.Wheel;assembly=Mobile.Controls.Wheel"
x:Class="Views.DashboardPage">
<StackLayout>
<ctl:Doughnut HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" />
</StackLayout>
</ContentPage>
是源自Doughnut
中ContentView
的类。
答案 0 :(得分:2)
我之前遇到过与iOS相同的问题,
在PCL中添加空类,使用静态 init()方法并调用 它在 iOS的AppDelegate 方法解决了这个问题,或者“不要 在iOS构建选项的“链接器选项”中选择了“或仅链接SDK程序集”链接。
在 Donut 类中,添加一个空的 Do-Nothing static Init 方法,并从iOS的AppDelegate中调用此方法:
在Doughnut.cs中添加以下方法
//Do Nothing Init Method:
public static void Init(){
}
在AppDelegate.cs中,在调用 LoadApplication 方法之前添加以下行
Mobile.Controls.Wheel.Doughnut.Init();
希望这可以解决您的问题,如果需要任何信息,请告诉我。