如何让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默认情况下跨平台提供iOS + Android + UWP模板。
实际:Visual Studio 2019似乎已从Xamarin.Forms跨平台项目创建中删除了UWP模板。
更新9 apr。:发布了新版本2019,它再次恢复了UWP模板
从VS2019中删除UWP模板是正确的,我不知道它背后的原因,但我们必须处理它。但是,有一个页面会逐步指导您完成整个过程。对于在Visual Studio for Mac中创建的项目,它已经有一段时间了,它们也不包括UWP模板。完整的描述可以在这里找到:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/windows/installation/取自本页:
首先,右键单击解决方案,然后选择添加>新建项目...并添加空白应用程序(通用Windows)项目:
然后,选择最小和目标UWP版本。
右键单击UWP项目并选择Manage NuGet Packages ...并添加Xamarin.Forms包。确保解决方案中的其他项目也更新为相同版本的Xamarin.Forms包。
此外,确保将在Build> Configuration Manager窗口中构建新的UWP项目(默认情况下可能不会发生这种情况)。勾选Universal项目的Build和Deploy框:
右键单击UWP项目并选择Add> Reference并创建对Xamarin.Forms应用程序项目(.NET Standard或Shared Project)的引用。
在UWP项目中,编辑App.xaml.cs
以在第52行的Init
方法中包含OnLaunched
方法调用:
// under this line
rootFrame.NavigationFailed += OnNavigationFailed;
// add this line
Xamarin.Forms.Forms.Init (e); // requires the `e` parameter
在UWP项目中,通过删除MainPage.xaml
元素中包含的Grid
来编辑Page
。然后在MainPage.xaml
中,为Xamarin.Forms.Platform.UWP
添加一个新的xmlns条目,如下所示:xmlns:forms="using:Xamarin.Forms.Platform.UWP"
。
在MainPage.xaml
中,更改根<Page element to <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
中,在LoadApplication
构造函数中添加MainPage
调用以启动Xamarin.Forms应用程序:
// below this existing line
this.InitializeComponent();
// add this line
LoadApplication(new YOUR_NAMESPACE.App());
从现有平台项目中添加所需的任何本地资源(例如图像文件)。
现在它应该像以前一样工作。我知道,通过以前的工作来完成它是一件麻烦事。对不起,但这也应该让你在那里。
谢谢大家的意见。很棒的信息!它帮助我自己去面对这样一个事实:UWP(现在)已经从Xamarin.Forms新项目脚手架消失了。
但是,问题的(最简单的)解决方案要求我找到的是:打开VS2017。创建新的Xamarin.Forms跨平台项目。一旦打开,全部保存。如果需要,然后关闭VS2017并在VS2019中打开。
通过Update 16.0.1,Microsoft恢复了the UWP creation on new Xamarin.Forms applications
除非您尝试使用不适用于UWP的Shell:
Visual Studio 2019 16.0.1版中修复的问题
从“移动应用程序(Xamarin.Forms)”项目模板创建新的Xamarin.Forms项目时,为Windows(UWP)平台添加选项。