MAUI/WPF,对特定于操作系统的项目进行单元测试时出现错误 NU1201(项目 TargetFramework 兼容性问题)

问题描述 投票:0回答:1

我在 .NET MAUI 和 WPF 中遇到此问题。我只想建立一个针对 MAUI 或 WPF 项目的单元测试项目(顺便说一句,这些项目位于单独的解决方案中)。问题是 MSTest 项目以 .NET8 为目标,而正在测试的项目以 .NET8-windows 为目标(“windows”是 MAUI 项目和 WPF 项目所需的操作系统目标)。我还尝试添加 xUnit 和 NUnit 测试项目作为解决方法,但这三个项目都产生相同的结果。我已经多次清理解决方案并重新启动 VS 多次。我正在解决此问题的第二天。 我希望我可以从测试项目中定位包含的操作系统平台,但我不知道如何或我尝试过的东西没有起作用。我不明白为什么会这样;我之前添加测试项目时从来没有遇到过这个问题。 这是 WPF 项目 .csproj 文件(因为它比 MAUI 简单;注意 SDK 是因为这是一个 Blazor Hybrid WPF 项目):

<Project Sdk="Microsoft.NET.Sdk.Razor">

  <PropertyGroup>
      <RootNamespace>SuccessfulSetup</RootNamespace>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net8.0-windows</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
    <!--  <ItemGroup>    <None Remove="Components\NazareneStyle.razor.css" />  </ItemGroup>  <ItemGroup>    <Compile Include="Components\NazareneStyle.razor.css" />  </ItemGroup>-->
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components.WebView.Wpf" Version="8.0.7" />
  </ItemGroup>

</Project>

这是 MSTest .csproj 文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="coverlet.collector" Version="6.0.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
    <PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\SuccessfulSetup\SuccessfulSetup.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
  </ItemGroup>

</Project>

这些是错误消息: Unit Test Error Messages

c# wpf unit-testing maui .net-8.0
1个回答
0
投票

我在 WPF 中也遇到了同样的问题。 WPF 应用程序以 .NET8-windows 为目标,而 MSTest 以 .NET8 为目标,测试无法进行。对我有用的是将

.csproj
中的 MSTest 版本从
.net8.0
更改为
.net8.0-windows
。 TargetFramework 会是这样的:

<TargetFramework>net8.0-windows</TargetFramework>
© www.soinside.com 2019 - 2024. All rights reserved.