繁体   English   中英

Xamarin.Forms Windows 10通用错误“CS0103 InitializeComponent不存在”

[英]Xamarin.Forms Windows 10 Universal Error “CS0103 InitializeComponent does not exist”

我有一个带有.Droid-Solution和SharedProject的Android项目。 我在手机上启动了应用程序,效果很好。 现在,我刚刚添加了一个空白的Windows 10 Universal Solution并在此处执行了说明: http//developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/

无论如何......我什么也没做。 只是按照说明尝试启动Windows 10 Universal应用程序,但我收到此错误:

“CS0103 C#当前上下文中不存在名称'InitializeComponent'。”

我用谷歌搜索了几次,但没有找到有用的东西。

我也尝试了这个例子: https//github.com/jamesmontemagno/Hanselman.Forms有相同的错误。

有人知道Xamarin.Forms和Windows 10 Universal Apps的这个错误吗?

每次在Xamarin.Forms中创建.XAML页面时,都在三个不同的位置使用部分类定义。

您的实际.xaml文件将在根元素上具有Class =“”属性,该属性定义命名空间和类名。 实际的根元素类型将定义新的.xaml页面为子类化的基类。 默认情况下,这将是ContentPage。

您还会获得一个链接的.xaml.cs文件,该文件也包含部分类定义。 这是您的代码隐藏文件,您可以在其中放置特定于页面的代码,这也是从构造函数调用InitializeComponent()的位置。

此调用用于解析xaml内容并填写对所有视图的引用,以便在xaml中使用x:name =“something”。

InitializeComponent()由xamarin自动生成,它是项目输出的一部分,每次编辑.xaml文件时都应重新生成它。

为了实现这一点,在.xaml文件的属性中,需要将Build Action设置为“Embedded Resource”,并且需要将Custom Tool设置为“MSBuild:UpdateDesignTimeXaml”

现在,即使正确设置了这些值,Xamarin中也存在可能导致文件无法生成并且出现错误的错误。

当您收到此错误时,首先要尝试的是右键单击.xaml文件并单击“运行自定义工具”。 您只需要执行一次,在一个xaml文件上,该工具将自动运行项目中的所有.xaml文件。

这是我在正常开发期间每天必须做的一些事情,并且在我切换到VS 2015时开始。你的里程可能会有所不同。

另一个要检查的重要事项是.csproj文件中的BuildTargets。

Xamarin能够做到这一点的方法是通过指定调用它在安装Xamarin.Forms nuget包时获得的DLL的构建操作。 有时构建操作导入行被搞砸了,这会导致各种各样的问题。

卸载.csproj并找到导入Xamarin.Forms.targets的行。 它应该看起来像这样:

<Import Project="..\..\packages\Xamarin.Forms.2.0.0.6484\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.0.0.6484\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />

确保此处的版本与packages.config文件中的Xamarin.Forms版本匹配,然后确保您可以实际导航到项目的根文件夹,并找到重要行所指的实际文件。 即,packages \\ xamarin ... \\ Xamarin.Forms.targets

常见的做法是删除\\ packages \\中的所有内容,让nuget在下一次构建时重新下载所有内容。 只需确保.csproj导入中的版本和packages.config中的版本相同即可。

如果所有这些都完成了,你应该有一个有效的生成的部分类来实现InitializeComponent(),并且错误应该消失。

就像对此的更新:

  1. 全新,干净的Windows 10 Pro安装,包含VM中的所有更新。

  2. 全新,干净的Visual Studio 2015 Community Edition安装,选择了所有选项并进行了所有更新。

  3. 新项目:使用nowt但生成的代码的空白Xaml应用程序( Xamarin.Forms.Portable )。

项目不会构建,因为App.xaml.cs中的InitializeComponent在当前上下文中不存在。

意见:这个Xamarin附加组件是一个免费产品的免费附加组件,但即便如此,这种东西并没有真正激发你使用它...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM