运行使用的 .Net 4.6.1 单元测试时出现以下异常System.IO.Compression.ZipFile.Open
,如果单元测试项目引用 .Net Standard 2.0 程序集:
System.MissingMethodException: Method not found: 'System.IO.Compression.ZipArchive System.IO.Compression.ZipFile.Open(System.String, System.IO.Compression.ZipArchiveMode)'.
at UnitTestProject.UnitTest1.TestMethod1()
单元测试项目是使用 VS 2017 单元测试项目(不是 .NET Core 项目)创建的,并且引用已添加到System.IO.Compression.FileSystem
和我的标准类库:
using System.IO.Compression;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTestProject
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
string zipfilename = "C:\\temp\\out.zip";
using (ZipArchive zipArchive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) { }
}
}
.net 标准类库只是一个没有方法的类:
namespace StandardClassLib
{
public static class Zipper
{ // Class is empty.
}
}
我在 Visual Studio 中使用测试资源管理器并从命令行使用时收到相同的错误vstest.console.exe
.
请注意,此行为仅在单元测试项目中表现出来,控制台应用程序工作正常。
谁能帮助我理解为什么这不起作用以及解决此问题的方法(如果可能)?