Xamarin.UITesting NU1201 Error: Android 8.1 Is incompatible with .NETFramework 4.6.1

Xamarin.UITesting NU1201 Error: Android 8.1 Is incompatible with .NETFramework 4.6.1

最近几天遇到了一个小问题,我将在 Visual Studio 2017 上创建一个新的 Xamarin Forms 项目并添加一个 Xamarin.UITest 跨平台测试项目以进行单元测试当我在 UITest 项目中引用 .Android 应用程序时,我收到了一系列 NU1201 错误。

这是我得到的确切错误:

Error NU1201    Project App1.Android is not compatible with net461 (.NETFramework,Version=v4.6.1) / win-x64. Project App1.Android supports: monoandroid81 (MonoAndroid,Version=v8.1)    

我已经尝试过 Android 版本号,看看 UITesting 包是否不支持最新的 android 但无论 android 是哪个版本,问题仍然存在相同的。

这是项目的截图。 默认项目中的所有代码均未更改,并且在模拟器中运行良好,但仅在 Android 应用程序引用 UITest 项目时才会产生这些错误。

经过更多小时的测试和试用后解决了这个问题。我没有将 Android 项目添加到引用中,而是在 AppInitializer 中向 StartApp() 调用添加了另一个方法,如下所示:

public class AppInitializer
{
    public static IApp StartApp(Platform platform)
    {
        if (platform == Platform.Android)
        {
            return ConfigureApp.Android.InstalledApp("com.companyname.App1").StartApp();
        }

        return ConfigureApp.iOS.StartApp();
    }
}

因此,当我第一次通过模拟器 运行 应用程序并安装到设备上时,UITest 只是使用模拟器上安装的 APK 而不是项目。

对于 运行 错误 NU1201 的那些人,您可能来对地方了。这可能不适用于所问的问题,但前几天我 运行 进入错误 NU1201,原因是我们的 nuget 项目的 nuproj 配置文件的目标配置错误。应该是

<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>

而不是

<TargetFramework>net462</TargetFramework>

因为项目不是“SDK 风格的”。

参考文献:https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-target-framework-and-target-platform?view=vs-2019