获取无法加载文件或程序集'系统.核心,Version = 4.0.0.0强生# 39;在asp.net core
本文关键字:强生 core net asp Version 核心 文件 加载 程序集 获取 系统 | 更新日期: 2023-09-27 18:11:26
我正在进行一个非常简单的单元测试。当我运行测试时,我得到异常无法加载文件或程序集"无法加载文件或程序集"。核心,Version = 4.0.0.0……"这个错误开始出现在我添加"Microsoft.NETCore.Portable"之后。兼容性":"1.0.1"在我的项目。json文件。但它是必需的,否则我不能在单元测试中使用lambda表达式。
在我的单元测试中没有编译时错误。我确信我的测试没有问题,是项目的问题。Json文件缺少一些东西。下面是我的测试。Mock<RegistrationManager> manager = new Mock<RegistrationManager>();
Mock<RegistrationModel> model = new Mock<RegistrationModel>();
var value = manager.Setup(a => a.GetDataFieldValuesForModel(model.Object, CommandType.next)).ReturnsAsync(new RegistrationModel { hasError = false, FormId="123",LeadId="345" });
{
"version": "0.1.0-*",
"dependencies": {
"Moq": "4.5.22",
"xunit": "2.2.0-beta2-build3300",
"dotnet-test-xunit": "2.2.0-preview2-build1029",
"IntegraPay.Domain": {
"version": "1.0.0-*",
"target": "project"
},
"Integrapay.RegistrationApplication": {
"version": "",
"target": "project"
},
"Microsoft.NETCore.Portable.Compatibility": "1.0.1"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"net451"
],
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
}
}
},
"testRunner": "xunit"
}
有同样的问题
解决了几个变化:
- 将Moq的依赖项更改为Moq.netcore(您还需要添加自定义的nuget feed "https://www.myget.org/F/aspnet-contrib/api/v3/index.json",在http://dotnetliberty.com/index.php/2016/02/22/moq-on-net-core/中找到)
- 删除了导入的dnx451 (net451在你的情况下),这个答案帮助了我很多:https://stackoverflow.com/a/39856247/1546582
- 删除链接到兼容性项目(你不需要它与moq.netcore)
- 添加对System.Diagnostics.TraceSource的引用(因为它没有被引用,但由于某种原因需要)
我的期末项目。Json看起来像:
{
"version": "1.0.0-*",
"dependencies": {
"NUnit": "3.5.0",
"dotnet-test-nunit": "3.4.0-beta-2",
"MyTestingProject": "1.0.0-*",
"Moq.netcore": "4.4.0-beta8",
"System.Diagnostics.TraceSource": "4.0.0"
},
"testRunner": "nunit",
"frameworks": {
"netcoreapp1.0": {
"imports": [
"netcoreapp1.0",
"dnxcore50"
],
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
}
}
}
}
}