1

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

不管怎样……我什么也没做。只是按照说明操作并尝试启动 Windows 10 通用应用程序,但我收到此错误:

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

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

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

有人知道Xamarin.FormsWindows 10 通用应用程序的这个错误吗?

4

2 回答 2

2

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

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

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

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

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

为此,在 .xaml 文件的属性中,需要将构建操作设置为“嵌入式资源”,并且需要将自定义工具设置为“MSBuild:UpdateDesignTimeXaml”

现在,即使这些值设置正确,Xamarin 中也存在错误,可能导致文件未生成并且您收到错误消息。

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

这是我在正常开发过程中每天必须做一次的事情,它从我切换到 VS 2015 开始。你的里程可能会担心。

要检查的另一件非常重要的事情是 .csproj 文件中的 BuildTargets。

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

卸载 .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() 并且错误应该消失了。

于 2016-01-20T09:43:11.970 回答
1

就像对此的更新:

  1. 全新、干净的 Windows 10 Pro 安装,所有更新都在 VM 中。

  2. 全新、干净的 Visual Studio 2015 社区版安装,所有选项均已选中并更新。

  3. 新项目:Blank Xaml App ( Xamarin.Forms.Portable) with nowt 但生成的代码。

该项目将不会构建,因为InitializeComponentApp.xaml.cs当前上下文中不存在。

意见:这个 Xamarin 插件是免费产品之上的免费插件,但即便如此,这种东西并不能真正激发你使用它......

于 2016-07-27T10:43:24.373 回答