使用 Nunit 时无法加载文件或程序集

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

我有一个类库“CoreComponents”,手动添加了引用“WindowsBase.dll”。

problem1

在类库中,我添加了一些使用“WindowsBase.dll”中某些类的方法。

然后,我新建了一个Nunit项目想要测试这些方法。我已经添加了项目引用,但是当我单击调试并单步进入该方法时,显示错误:

System.IO.FileNotFoundException:无法加载文件或程序集“WindowsBase,版本= 6.0.2.0,文化=中性,PublicKeyToken = 31bf3856ad364e35”。系统找不到指定的文件。

根据上面的描述,我想也许我需要添加对Nunit的引用,所以我这样做了

problem2

不幸的是,出现了另一个错误:

System.BadImageFormatException:无法加载文件或程序集“WindowsBase,版本= 6.0.2.0,文化=中性,PublicKeyToken = 31bf3856ad364e35”。不应加载参考程序集来执行。它们只能在仅反射加载器上下文中加载。 (0x80131058) System.BadImageFormatException:无法加载参考程序集以供执行。

目标框架是.Net6,classlib和NunitPrj,“WindowsBase.dll”也从.Net6 WinDeskApp.Ref复制。

出现这个错误,我不知道该怎么办。 我在谷歌上搜索了一些答案,例如删除“bin”文件夹,但不起作用。

这里有解决办法吗?还是我操作中做错了什么?

//------------------------------------------------------------ -------------------

我已将目标框架更改为“Net6-windows”,但问题仍然存在。

coreComponent csproj:

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

  <PropertyGroup>
    <TargetFramework>net6.0-windows</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Web.WebView2" Version="1.0.1823.32" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="WindowsBase">
      <HintPath>lib\WindowsBase.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>

NUnitPrj csproj:

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

  <PropertyGroup>
    <TargetFramework>net6.0-windows</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

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

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
    <PackageReference Include="NUnit" Version="3.13.3" />
    <PackageReference Include="NUnit3TestAdapter" Version="4.4.2" />
    <PackageReference Include="NUnit.Analyzers" Version="3.6.1" />
    <PackageReference Include="coverlet.collector" Version="3.2.0" />
  </ItemGroup>

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

</Project>
c# .net nunit
1个回答
0
投票

在项目上您应该有标签

© www.soinside.com 2019 - 2024. All rights reserved.