如何在我的xUnit测试中加载PresentationFramework?

3

实际上,在网上搜索类似案例是非常困难的。所以我决定在这里问。

在我的测试项目中,SUT从Assembly引用标签中引用了PresentationFramework,目标框架是.NET Framework 4.8

由于我使用的是xUnit,所以我的目标框架是.NET Core 2.2,并且在运行测试时,我收到了以下测试消息:

Message: System.IO.FileNotFoundException : 无法加载文件或程序集 'PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'。系统找不到指定的文件。

实际上,我不确定如何将PresentationFramework添加到.NET Core中,或者是否应将测试项目的目标框架更改为.NET Framework 4.8


.NET Core 代码无法直接与 .NET Framework 代码进行接口交互。因此,你的 .NET Core 项目无法从你的 .NET Framework 项目加载程序集。目标运行时框架必须在两个项目中相同,所以如果你将单元测试项目的目标框架更改为 .NET Framework,则应该可以正常工作。 - MindSwipe
2个回答

3

我曾经也遇到过同样的问题,我修改了xUnit测试项目的csproj文件以指定Windows SDK和WPF。

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

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UseWPF>true</UseWPF>
    <IsPackable>false</IsPackable>
  </PropertyGroup>
...

0

我也曾遇到过相同的问题。在我的情况下,这是由于我的单元测试具有以下依赖项:

UnitTest (netcoreapp2.2) -> Project_1 (netstandard2.0) -> Project_2 (net461)

单元测试(netcoreapp2.2)隐式引用了net461项目。我将Project_2设置为netstandard2.0类型,因此错误消失了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接