Frage 7zip Befehlszeile - kann keinen Code finden, der mit Archiven funktioniert


Wir sind dabei, einen Server zu verschieben, sowohl auf einen neuen Host als auch von einer Server 2k8 Box zu einer Server 2012 Box. Der fragliche Server verfügt über einige Laufwerke, die unsere Websites und einige Dienstprogramme enthalten. Diese Laufwerke wurden genau während des Umzugs dupliziert. Daten, Ordnerstrukturen und Berechtigungen sollten identisch sein.

Als ich kürzlich eine Jenkins-Aufgabe auf diesem Server ausgeführt habe, habe ich Folgendes im Protokoll gefunden:

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

Fehler: 7-Zip kann den Code nicht finden, der mit Archiven funktioniert.

7-Zip ist auf dem Server installiert und ich kann die Aktionen ausführen, die es über die GUI versucht. Ich bin ein Entwickler und bin nicht daran gewöhnt, etwas wie diese zu beheben, und Google für den spezifischen Fehler hat mich zu keiner Lösung geführt.

Die engste Übereinstimmung, die ich finden konnte, ist eine Website, die besagt, dass das Befehlszeilentool einige DLL-Dateien benötigt, wenn es weniger als 150 KB groß ist. Ich habe das Werkzeug oben auf dem angegebenen Pfad gefunden und es war über 150K. Ich habe die .dll-Dateien aus dem Installationsverzeichnis trotzdem in dieses Verzeichnis kopiert. Dies behebt das Problem nicht.

Was soll ich tun, um das zu beheben? Ich brauche 7-Zip, um von der Befehlszeile aus zu arbeiten, oder wichtige Teile unseres Build / Deploy-Prozesses müssen von Hand erledigt werden.


5
2018-03-11 19:28


Ursprung


Wird der Build / Deploy über explizite Skripte oder mithilfe eines CI-Tools wie TeamCity oder CruiseControl.NET durchgeführt? Wenn es unter einem anderen Benutzer ausgeführt wird, funktioniert die GUI bei der Ausführung als dieser Benutzer? Haben Sie versucht, die 7zip-Befehlszeilenversion neu zu installieren? 7-zip.org/download.html - squillman
@squillman: Build / Deploy erfolgt über Jenkins mit Hilfe von Skripten. Nichts in Jenkins hat sich geändert, außer dem Server, auf dem es läuft (Web2, der neue Server anstelle von Web). Ich weiß nicht, unter welchem ​​Benutzer es läuft. Installiert 7-Zip die Befehlszeilenversion oder ist das separat? - Jeff
Ah richtig. Über die Jenkins-Zeile hinweg ... Die 7-zip-Befehlszeile ist eine separate Installation. Wenn es nach der Installation der Befehlszeilenversion immer noch nicht funktioniert, finden Sie heraus, unter welchen Konten die Build-Aufgaben ausgeführt werden. - squillman
Heh, froh, dass es so einfach für dich war :) - squillman
@squillman: Manchmal ist es das Triviale, das am längsten zur Fehlersuche braucht. Vielen Dank! - Jeff


Antworten:


Stellen Sie sicher, dass Sie die 7-zip-Befehlszeilenversion installiert haben; Es ist von der GUI getrennt. Sie können es hier herunterladen:

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


6
2018-03-11 19:55





Ein anderer Grund für diesen Fehler ist, wenn Sie 7z.exe haben, aber nicht auch 7z.dll haben - beide werden benötigt, damit das Kommandozeilenprogramm richtig funktioniert. Das Kopieren dieser beiden Dateien aus dem normalen 7-zip GUI-Installationsordner reicht für eine portable Version des Befehlszeilenprogramms auf unserem CI.


4
2018-04-03 08:46





In der Batch-Datei geben Sie den Pfad zur EXE ein, sonst weiß das Batch-Programm nicht, wo sich die Exe befindet. wenn exe ist c: \ Prog ~ 1 files \ bin \ 7zip.exe

Setzen Sie den Pfad als c: \ Prog ~ 1 files \ bin \


0
2017-07-04 10:12





Ich hatte die gleiche Fehlermeldung wie oben beschrieben. Das Problem wurde behoben, indem die Datei 7z.exe aus dem Verzeichnis Windows \ System32 gelöscht wurde (das dort durch Installation von 7-zip als Administrator installiert wurde).


0
2018-02-01 15:53





Ich hatte ein ähnliches Problem mit ". \ 7z.exe" von einem Powershell-Skript, das Problem war, dass die. \ 'Lokaler Ordner' Kopie von 7z.exe war eine ältere Version als die derzeit auf meinem Computer installiert ist. Um das Problem zu beheben, habe ich einfach die neueren Dateien 7z.exe und 7z.dll in den lokalen Ordner kopiert, den das Skript verwendet hat.


0
2018-05-22 22:52