如何将 UWP 目标添加到现有 Xamarin Forms 项目?

Posted

技术标签:

【中文标题】如何将 UWP 目标添加到现有 Xamarin Forms 项目?【英文标题】:How can I add a UWP target to an existing Xamarin Forms project? 【发布时间】:2017-05-02 17:04:03 【问题描述】:

我有一个现有的 Xamarin Forms 应用程序,该应用程序设置为针对 androidios 构建。我想添加一个 UWP 目标,以便查看应用程序在 Windows 上的执行情况。我假设我无需为 Windows 创建新的 UI 就可以做到这一点?

我在 Windows 10 上使用 Visual Studio 2015。

【问题讨论】:

developer.xamarin.com/guides/xamarin-forms/platform-features/… 【参考方案1】:

你应该可以关注这个 Xamarin documentation page

旧 xamarin.com 链接old documentation page

它由几个步骤组成,一切都在 Visual Studio 中,因为 Xamarin Studio 不支持 UWP:

    将干净的 UWP 项目添加到您的解决方案中。 将 Xamarin.Forms NuGet 包添加到您的 UWP 项目,确保版本与您的其他项目同步 在 Build > Configuration Manager 下确保正在构建和部署您的 UWP 项目

    右键单击项目 > 添加 > 引用并引用您的 PCL 或共享项目

    OnLaunched 方法中编辑您的 App.xaml.cs(在模板中的第 63 行附近):
    // under this line
    rootFrame.NavigationFailed += OnNavigationFailed;
    // add this line
    Xamarin.Forms.Forms.Init (e); // requires the `e` parameter

    MainPage.xaml中删除Page标签中的所有内容,它应该是一个空的Grid标签。

    同样在 MainPage.xaml 中添加这个命名空间:xmlns:forms="using:Xamarin.Forms.Platform.UWP"

    仍在 MainPage.xaml 中将 Page 标签更改为 forms:WindowsPage

    MainPage.xaml.cs中删除Page的继承,使其变为public sealed partial class MainPage // REMOVE ": Page"

    仍然在 MainPage.xaml.cs 的构造函数中添加 LoadApplication,如下所示:

    // below this existing line
    this.InitializeComponent();
    // add this line
    LoadApplication(new YOUR_NAMESPACE.App());

另请注意,您必须提供图像等资源,并添加您可能已安装在其他项目(如您正在使用的插件)中的所有使用过的 NuGet 包。在后一种情况下,最好检查是否所有包都可用于 UWP。

还有几个已知问题:

一些视图/页面的外观尚未最终确定有几个 导航周围的已知崩溃文本对齐在 一些标题

【讨论】:

在您的注释中,您说我们应该添加“所有 NuGet 包”,哪些包?在许多站点中,我看到他们只需要添加 Xamarin.forms Nuget 包。 对此进行了一些澄清,你是对的。我的意思是你可能已经安装在其他项目上的 NuGet 包,如插件等。如果您正在设置一个干净的项目,那么 Xamarin.Forms 包就足够了。 好的,我的解决方案中已经有 15 个其他项目。这意味着我需要添加我的解决方案中安装的所有 nuget 包?还是只有那些 UWP 引用的 .shared(.NetStandard Library) 项目? 不一定,只有您通常安装在共享项目和 iOS 和 Android 项目上的那些,才是您现在需要添加到 UWP 中的。如果你的 NuGet 只是安装在共享库中,你可能不需要在 UWP 上安装它。 @Gerald Versluis 你在这里也解释得很好:youtube.com/watch?v=mbIvG8ripcw&t=590s

以上是关于如何将 UWP 目标添加到现有 Xamarin Forms 项目?的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 表单 UWP - 显示 PDF

如何将上下文菜单添加到 xamarin UWP 应用程序中的列表项?

如何自定义 xamarin 表单 UWP 顶栏

如何将 .NET dll 引用添加到 UWP 项目?

Xamarin UWP 将字段名称获取到发件人

如何更改 Xamarin UWP 应用名称