【发布时间】:2017-04-28 18:45:07
【问题描述】:
我正在尝试为我的跨平台 (Android/iOS/UWP) Xamarin C# 项目创建一些单元测试。我的应用程序 UWP 版本的目标是 Windows Surface 平板电脑。这就是我所做的。
- 在 Visual Studio 2017 社区的 File:New:Project 中,选择 Cross Platform App
- 指定空白应用,可移植类库(我正在构建的应用是 PCL,所以我假设单元测试也应该是 PCL)
- 针对我的通用 Windows 应用程序的目标和最低平台版本的问题,我为最低和目标选择了“Windows 10 Creators Update”(我的应用程序需要这个,所以再次尝试使单元测试类似于尽可能实际应用)
- 管理 NuGet 包,请注意 Xamarin.Forms 有更新(从 2.3.4.224 到 2.3.4.231)。进行更新。成功。
-
在 NuGet 包管理器中,选择 xunit v2.2.0 并单击安装。得到这个错误:
无法安装软件包“xunit.assert 2.2.0”。您正在尝试将此包安装到以“.NETPortable,Version=v4.5,Profile=Profile259”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。如需更多信息,请联系包作者。
检查我的项目的属性,发现它有很多目标:.NET Framework 4.5、ASP.NET Core 1.0、Windows 8、Windows Phone 3.1、Windows Phone Silverlight 8、Xamarin.Android、Xamarin .iOS、Xamarin.iOS(经典)和 Xamarin.Mac。点击“更改”按钮。
-
取消选中 Xamarin.Mac、.NET Framework 4.5 和 ASP.NET Core 1.0。添加对 Windows Universal 10.0 的检查。单击确定。获取错误:
项目的目标不能更改。所选目标要求项目选择加入 NuGet 3.0 支持,但 Visual Studio 无法自动为您执行此操作。请卸载所有 NuGet 包,然后重试。
好的,回到 NuGet 包管理器,卸载 Xamarin.Forms。
- 返回属性,更改目标,单击确定。屏幕闪烁了一下,然后我回到了“属性”页面(如预期的那样),目标与我请求的不匹配。我的新目标是 .NET Framework 4.5.1、Windows 8.1、Xamarin.Android、Xamarin.iOS、Xamarin.iOS(经典)和 Xamarin.Mac。
- 返回 NuGet 包管理器,重新安装 Xamarin.Forms。要求安装 xunit。接受许可。
-
得到新的错误:
无法安装包“System.Runtime.InteropServices.RuntimeInformation 4.0.0”。您正在尝试将此包安装到以“.NETPortable,Version=v4.6,Profile=Profile44”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。如需更多信息,请联系包作者。
回到主项目的属性,它仍然说它的目标是 .NET Framework 4.5.1,而不是 4.6。
那么如何让 xunit 在 Visual Studio 2017 中使用 Xamarin?
【问题讨论】: