Как извлечь содержимое файла zip в папку в .NET 4.5

Кажется, ответ на следующий вопрос показывает, как извлечь файлы с помощью вызова метода System.IO.Commpression.ZipFile.ExtractToDirectory. «ZipFile», по-видимому, не существует в .NET 4.5 при добавлении ссылки на System.IO.Compression. Как извлечь файлы из файла * .zip в .NET 4.5?

Как распаковать все ZIP-файл из папки, используя C # 4.0 и без использования OpenSource Dll?

Кажется, это показывает, как сжимать файлы. Но я ищу обратное.

Архивирование файлов в .NET 4.5

Даже этот вопрос ссылается на «ZipFile» в исходном коде. Но я не могу найти этот класс.

Как извлечь только конкретный каталог из zip-архива в C # .NET 4.5?

РЕДАКТИРОВАТЬ:

Обратите внимание, что 7z.exe (из пакета 7zip) не работал. Должен быть конфликт с .NET и 7zip. ZipFile теперь, кажется, работает нормально.

private void extract_Click(object sender, EventArgs e)
{
    string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
    exePath = @"C:\test";  // path during troubleshooting

    ////var cmd1 = "cd \"" + exePath + "\"";
    ////ExecuteCommand(cmd1, 100, exePath);

    //var cmd2 = "\"" + exePath + "\\7z.exe\" x \"" + exePath + "\\source.zip\"";
    //ExecuteCommand(cmd2, 100, exePath);

    string zipPath = exePath + "\\source.zip";
    string extractPath = exePath;

    // needed explicit reference to System.IO.Compression.FileSystem
    ZipFile.ExtractToDirectory(zipPath, extractPath);


}

private static int ExecuteCommand(string command, int timeout, string dir)
{
    var processInfo = new ProcessStartInfo("cmd.exe", " /C " + command)
    {
        CreateNoWindow = true,
        UseShellExecute = false,
        WorkingDirectory = dir,
    };

    var process = Process.Start(processInfo);
    process.WaitForExit(timeout);
    var exitCode = process.ExitCode;
    process.Close();
    return exitCode;
}

Ответы на вопрос(1)

Ваш ответ на вопрос