【问题标题】:Error in VS2015 installation and Xamarin UWP not workingVS2015 安装出错,Xamarin UWP 无法正常工作
【发布时间】:2016-11-02 22:11:59
【问题描述】:

我正在尝试在我的电脑上安装 VS2015 社区。 当我最后安装所有东西时,安装程​​序会给我以下消息:

我尝试安装、重新安装、更新,但一切都发生了变化。我能看到的唯一结果是,当我创建一个新的 Xamarin 解决方案时,当我使用本地机器作为目标运行 UWP 项目时,它会启动,但随后我收到此异常消息。

如果我从移动模拟器运行应用程序,它会毫无问题地启动。

某处(对不起,我忘记了出处)我读到我应该确保为该项目添加以下引用:

  • UWP 的 Windows 桌面扩展
  • 适用于 UWP 的 Windows Mobile 扩展

但我只有第一个,没有第二个。可能和安装问题有关?

我是 Xamarin 和 UWP 的新手,但 UWP 应该在移动设备和桌面上运行,那么为什么我会有这种行为?以及我可以尝试解决可能与此相关的安装问题吗?

那么,最后,我可以尝试什么来修复安装并允许 xamarin UWP 项目在本地机器上正确运行?

【问题讨论】:

  • 我认为你应该 VS 安装,而不是 Xamarin。如果 VS 正确安装 Xamarin 应该没问题。你的电脑是 Windows 10 吗?可能会有所帮助developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
  • 我已经试过了。它说我已经安装了 SDK。如果我卸载它然后安装这个没有任何变化。

标签: xamarin visual-studio-2015 uwp failed-installation


【解决方案1】:

如果我从移动模拟器运行应用程序,它会毫无问题地启动。

根据您的错误消息,您的项目中似乎使用了StatusBar

在使用StatusBar时,请注意这不是通用API,该类只能在移动设备中使用。因为状态栏只存在于移动设备中,桌面、桌面或物联网设备中没有这样的东西。所以如果你在Local Machine上使用这个类,会报错,但是在Mobile Emulator中,它可以正常工作。

有关详细信息,请参阅StatusBar要求部分。

通常,当使用StatusBar 时,我们会将其与运行时 API 检查一起使用,如下所示:

Windows.UI.ViewManagement.StatusBar statusBar = null;
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
    statusBar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView();
}

if (statusBar != null)
{
    //TODO
}

在本地机器上,由于没有StatusBarApiInformation.IsTypePresent 方法将返回false。这将帮助我们避免错误。更多信息请见Write adaptive code

但我只有第一个,没有第二个。可能和安装问题有关?

我不确定您为什么找不到 适用于 UWP 的 Windows Mobile 扩展。但是,如果您使用过StatusBar 并且可以在 Mobile Emulator 中构建和运行您的项目,那么您必须引用 UWP 的 Windows Mobile Extensions。如果没有这个扩展,我们就不能使用StatusBar 并且构建会失败。

根据您安装的 SDK,您可以在 Reference Manager 中找到以下扩展(在您的项目中右键单击 "References",然后选择 "添加参考”“通用 Windows”“扩展”)。

我建议您使用 Visual Studio 创建一个新的空白应用程序(通用 Windows) 项目,看看您是否同时拥有桌面扩展和移动扩展。如果您在新的空白应用程序中仍然有问题,我建议您使用Visual Studio Uninstaller 完全卸载 Visual Studio,并检查控制面板以确保您已卸载所有相关的东西,如 SDK。然后您可以尝试重新安装 Visual Studio 以查看它是否有效。

【讨论】:

  • 在这种情况下,为了构建一个也适用于桌面的 Xamarin 项目,我需要在其中创建另一个 UWP 项目并管理丢失的状态栏(以及我认为的其他内容)对吗?此外,我还使用 Visual Studio Uninstaller 来删除 VS,但在使用它之后,我在安装过程中遇到了同样的错误。即使在这种情况下,我也有适用于 UWP 的 Windows 桌面扩展,但不是移动版...
  • @Jepessen 您是否尝试过新的空白应用程序(通用 Windows)项目?它有同样的问题吗?除了你正在使用的 Xamarin 项目是什么?如果你在 Xamarin 项目中已有 UWP 项目,则无需再添加一个。以Map sample 为例,它只包含一个 UWP 项目,可以在桌面和移动设备上运行。
  • 使用普通的 UWP 应用程序我没问题,它可以运行。问题是当我创建一个新的空白 xamarin 应用程序(共享),然后尝试运行 UWP 项目(没有代码更改)...
  • @Jepessen:那么在普通的 UWP 应用中,你可以同时找到桌面扩展和移动扩展?我不确定 Xamarin UWP 项目无法在本地计算机上运行是什么意思。如果您直接在本地计算机上使用StatusBar,它应该不起作用。或许您可以分享一个minimal reproducible example 可以重现您的问题,以便我们知道问题是否与安装问题有关。
  • 我可以找到桌面扩展,但找不到移动扩展。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 2014-10-10
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 2020-10-26
相关资源
最近更新 更多