【发布时间】:2016-04-14 09:35:52
【问题描述】:
当我创建一个空白的 Xamarin.Forms 应用程序时,没有加载 WinPhone 应用程序,为什么?
注意:
我正在 Windows 上尝试。
【问题讨论】:
标签: forms mobile xamarin xamarin-forms win-phone-silverlight-8.1
当我创建一个空白的 Xamarin.Forms 应用程序时,没有加载 WinPhone 应用程序,为什么?
注意:
我正在 Windows 上尝试。
【问题讨论】:
标签: forms mobile xamarin xamarin-forms win-phone-silverlight-8.1
如果您从 Xamarin Studio 创建它,您将只获得 Android 和 iOS 项目。你需要 Visual Studio 才能创建 WinPhone、Windows 和 UWP 项目。此外,您需要拥有相应的 SDK 才能加载和构建项目。
正如official documentation 中所述,
为 Windows 平台开发 Xamarin.Forms 应用程序需要 Visual Studio。要求页面包含有关先决条件的更多信息。
【讨论】:
您必须从 Visual Studio 中手动将其添加到您的多平台移动解决方案中,然后您可以将 Xamarin.Forms nuget 添加到其中。
右键单击新创建的项目 > Manage NuGet Packages... 并添加 Xamarin.Forms 包。
右键单击项目 > 添加 > 引用并创建对共享 Xamarin.Forms 应用程序项目的项目引用。
编辑 App.xaml.cs 以在第 67 行附近的 OnLaunched 方法中包含 Init() 方法调用:
// add this line
Xamarin.Forms.Forms.Init (e); // requires LaunchActivatedEventArgs
// above this existing line
if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) {}
编辑 MainPage.xaml - 更改根元素
<forms:WindowsPhonePage
...
xmlns:forms="using:Xamarin.Forms.Platform.WinRT"
...
</forms:WindowsPhonePage>
编辑 MainPage.xaml.cs 以删除类名的 :PhonePage 继承说明符。
public sealed partial class MainPage // REMOVE ": PhonePage"
仍在 MainPage.xaml.cs 中,在 MainPage 构造函数中添加 LoadApplication 调用(大约第 28 行)以启动 Xamarin.Forms 应用:
// below this existing line
this.InitializeComponent();
// add this line
LoadApplication(new YOUR_NAMESPACE.App());
双击 Package.appxmanifest 设置这些经常需要的功能:
互联网(客户端和服务器)
【讨论】:
我现在在空白 .Forms 应用程序中有 WinPhone 应用程序,还有通用 Windows 项目。
我为此做了什么:
我在Sanjisan's answer in this page做了所有的事情
完全卸载 Xamarin,然后重新安装。这也发生在我身上。我也会卸载 Visual Studio。先安装它,然后安装 Xamarin。
编辑:我知道这样做很糟糕,但这是 Xamarin 团队让我做的事情来解决它。据我所知,这是上周的官方修复。
【讨论】: