【问题标题】:VS2019 + Xamarin.Forms = UWP/EXE dropped?VS2019 + Xamarin.Forms = UWP/EXE 掉线了?
【发布时间】:2019-08-24 13:45:04
【问题描述】:

如何让 UWP 回到 Xamarin.Forms 跨平台创建中以使模板准备好滚动?

在浏览了发行说明、使用 VS2019 的 UI 和几个小时的网络搜索之后,我只发现其他人在预览版中发布了有关该问题的帖子。有人说 UWP 永远消失了,有人说它只是默认不包括在内(所以微软可以吹嘘安装如何从 23GB 到 8GB 或类似的东西)——但没有帮助如何重新启用它,或添加将其添加到项目创建向导中(除了添加一个空白的 UWP 项目,不包含 iOS/Android 项目中的所有代码)。

<Project Sdk="Microsoft.NET.Sdk">
// the code is not the problem here,
// getting TO the code is the problem
</Project>

预期: 在 VS2017 中,Xamarin.Forms Cross-Platform 默认提供 iOS + Android + UWP 模板。

实际: Visual Studio 2019 似乎已从 Xamarin.Forms 跨平台项目创建中删除了 UWP 模板。

【问题讨论】:

标签: templates xamarin.forms uwp visual-studio-2019


【解决方案1】:

4 月 9 日更新:发布了 2019 年的新版本,再次恢复了 UWP 模板

从VS2019中删除UWP模板是正确的,我不知道它背后的原因,但我们必须处理它。 但是有一个页面可以让您逐步完成整个过程。在 Visual Studio for Mac 中创建的项目已经存在了一段时间,这些项目也不包括 UWP 模板。完整的描述可以在这里找到:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/windows/installation/来自这个页面:

首先,右击解决方案并选择Add > New Project...并添加一个Blank App (Universal Windows)项目:

然后,选择最低和目标 UWP 版本。

右键单击 UWP 项目并选择 Manage NuGet Packages... 并添加 Xamarin.Forms 包。确保解决方案中的其他项目也更新到相同版本的 Xamarin.Forms 包。

另外,确保将在 Build > Configuration 管理器窗口中构建新的 UWP 项目(默认情况下这可能不会发生)。勾选 Universal 项目的 BuildDeploy 框:

右键单击 UWP 项目并选择 添加 > 引用,然后创建对 Xamarin.Forms 应用程序项目(.NET Standard 或共享项目)的引用。

在 UWP 项目中,编辑 App.xaml.cs 以在第 52 行附近的 OnLaunched 方法中包含 Init 方法调用:

// under this line
rootFrame.NavigationFailed += OnNavigationFailed;
// add this line
Xamarin.Forms.Forms.Init (e); // requires the `e` parameter

在 UWP 项目中,通过删除包含在 Page 元素中的 Grid 来编辑 MainPage.xaml。然后在MainPage.xaml 中,为Xamarin.Forms.Platform.UWP 添加一个新的xmlns 条目,如下所示:xmlns:forms="using:Xamarin.Forms.Platform.UWP"

MainPage.xaml 中,更改根&lt;Page element to &lt;forms:WindowsPage,如下所示:

<forms:WindowsPage
...
   xmlns:forms="using:Xamarin.Forms.Platform.UWP"
...
</forms:WindowsPage>

在 UWP 项目中,编辑 MainPage.xaml.cs 以删除:Page 类名的继承说明符(因为由于上一步中所做的更改,它现在将从 WindowsPage 继承)

public sealed partial class MainPage // REMOVE ": Page"

MainPage.xaml.cs 中,在MainPage 构造函数中添加LoadApplication 调用以启动Xamarin.Forms 应用:

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

从现有平台项目中添加所需的任何本地资源(例如图像文件)。

现在它应该像以前一样工作了。我知道,对于以前刚刚起作用的东西来说,经历它是一件麻烦事。很抱歉,但这也应该能让你到达那里。

【讨论】:

  • UWP(空白应用程序)模板对我来说也消失了。当我搜索 UWP 时,它找不到它。然后我点击了 UWP 的模板,一条消息指示从工作负载“通用 Windows 开发平台”下载。我使用了 Visual Studio 安装程序并下载了它。现在可以了。我有 VS 2019(Microsoft Visual Studio Enterprise 2019,版本 16.7.7)。
【解决方案2】:

随着更新 16.0.1,微软恢复了the UWP creation on new Xamarin.Forms applications

除非您尝试使用 UWP 不可用的 Shell:

Visual Studio 2019 版本 16.0.1 中修复的问题

从“移动应用程序 (Xamarin.Forms)”项目创建新 Xamarin.Forms 项目时添加 Windows (UWP) 平台选项 模板。

【讨论】:

【解决方案3】:

编辑(2021 年 7 月 17 日):我已经启动了一个新的 xamarin 表单解决方案,并且似乎所有 3 个平台在 VS2019 中的所有预构建模板(空白、主详细信息、选项卡式布局)上再次可用)。

谢谢大家的意见。 很好的信息! 它帮助我坚定了自己面对这个事实: UWP 已从 Xamarin.Forms 新项目脚手架中消失(目前)。

但是,我发现的问题的(最简单)解决方案是: 打开 VS2017。创建新的 Xamarin.Forms 跨平台项目。 一旦打开,保存所有。 然后关闭 VS2017 并在需要时在 VS2019 中打开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 2018-06-28
    • 2017-12-02
    • 2021-01-14
    • 2018-10-22
    相关资源
    最近更新 更多