web-dev-qa-db-ja.com

7Zipコマンドライン-アーカイブで動作するコードが見つかりません

新しいホストへの移行と、Server 2k8ボックスからServer 2012ボックスへの移行の両方を行っています。問題のサーバーには、サイトといくつかのユーティリティを保持するドライブがいくつかあります。これらのドライブは移動中に正確に複製されました。データ、フォルダ構造、および権限はすべて同じである必要があります。

最近、このサーバーでJenkinsタスクを実行すると、ログで次のことがわかりました。

G:\ Websites\PathToWebsite> G:\ Jenkins\Tools\7z a -tzip Website_PROD_Backup_20140311_.Zip

7-Zip [64] 9.20 Copyright(c)1999-2010 Igor Pavlov 2010-11-18

エラー:7-Zipはアーカイブで動作するコードを見つけることができません。

7-Zipがサーバーにインストールされていて、GUIから実行しようとしているアクションを実行できます。私は開発者であり、このような問題のトラブルシューティングに慣れていません。また、特定のエラーが発生したためにGoogleが解決策を提示していません。

私が見つけることができる最も近い一致は、コマンドラインツールが150K未満の場合、いくつかの.dllファイルを必要とすると言うサイトです。上記の参照パスでツールを見つけましたが、150Kを超えていました。とにかく、.dllファイルをインストールディレクトリからそのディレクトリにコピーしました。これで問題は解決しませんでした。

これを修正するにはどうすればよいですか?コマンドラインから作業するには7-Zipが本当に必要です。そうしないと、ビルド/展開プロセスの重要な部分を手動で行う必要があります。

5
Jeff

7-Zipコマンドラインバージョンがインストールされていることを確認してください。 GUIとは別のものです。ここからダウンロードできます:

http://www.7-Zip.org/download.html

6
squillman

このエラーのもう1つの理由は、7z.exeはあるが7z.dllがない場合です-コマンドラインプログラムが正しく動作するには両方が必要です。通常の7-Zip GUIインストールフォルダーからこれら2つのファイルをコピーするだけで、CIのコマンドラインプログラムのポータブルバージョンを作成できます。

5
Jeremy Murray

バッチファイルで、exeへのパスを設定します。そうしないと、バッチプログラムは、exeがどこにあるかを認識できません。 exeがc:\ Prog〜1 files\bin\7Zip.exeにある場合

パスをc:\ Prog〜1 files\bin \に設定します

Powershellスクリプトから '。\ 7z.exe'を実行すると同様の問題が発生しました。問題は、7z.exeの。\ 'ローカルフォルダー'コピーが現在コンピューターにインストールされているバージョンより古いバージョンであるということでした。問題を修正するために、スクリプトが使用していたローカルフォルダーに新しい7z.exeおよび7z.dllファイルをコピーしました。

0
Gregor y

上記と同じエラーメッセージが表示されました。 Windows\System32ディレクトリから7z.​​exeを削除して問題を解決しました(管理者として7-Zipをインストールすることでそこに配置されましたか?)。

0
fettavskiljarn