ユニットテストプロジェクトが.Net Standardを参照している場合は、System.IO.Compression.ZipFile.Open
を使用する.Net 4.6.1ユニットテストを実行するときに次の例外が発生します。 2.0アセンブリ:.NET標準プロジェクトの参照時にメソッドが見つからない場合.Net 4.6.1ユニットテスト
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コア1)を使用して作成されたとの言及が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標準クラス私はvstest.console.exe
を使用して、Visual Studioで、コマンドラインからテストエクスプローラを使用して同じエラーが出る
namespace StandardClassLib
{
public static class Zipper
{ // Class is empty.
}
}
:ライブラリは、単になしのメソッドを持つ単一のクラスです。
この動作は、単体テストプロジェクトでのみ表示されることに注意してください。コンソールアプリケーションはうまく動作します。
これがなぜ機能しないのか、この問題の回避策(可能な場合)を理解できる人は誰でも助けてくれますか?