【问题标题】:How to load PresentationFramework into my xUnit test?如何将 PresentationFramework 加载到我的 xUnit 测试中?
【发布时间】:2019-09-25 10:17:03
【问题描述】:

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

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

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

消息:System.IO.FileNotFoundException:无法加载文件或 程序集'PresentationFramework,版本=4.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35'。系统找不到文件 指定。

其实我不知道如何将PresentationFramework添加到.NET Core,或者我应该将测试项目的目标框架更改为.NET Framework 4.8

【问题讨论】:

  • .NET Core 代码无法直接与 .NET Framework 代码交互。因此,您的 .NET Core 项目不可能从您的 .NET Framework 项目中加载程序集。两个项目中的目标运行时框架必须相同,因此如果将单元测试项目目标框架更改为 .NET Framework,它应该可以工作

标签: c# unit-testing reference .net-assembly xunit


【解决方案1】:

我遇到了同样的问题,我修改了xunit测试项目的csproj来指定Windows SDK和WPF

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

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

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。就我而言,事实证明我的单元测试具有以下依赖项:

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

    单元测试 (netcoreapp2.2) 隐式引用了 net461 项目。我制作了 netstandard2.0 类型的 Project_2。这样错误就消失了。

    【讨论】:

      猜你喜欢
      • 2022-11-13
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-26
      相关资源
      最近更新 更多