Farbschema: Riviera
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Office SDK » Problembehandlung » Das Projekt ist belegt

Das Projekt ist belegt

wkl-office endet mit Exitcode 10 und error: ein anderer Lauf arbeitet an diesem Projekt (<holder>); erneut versuchen, wenn er fertig ist., dotnet build schlägt mit dem Fehler WKL010 und demselben Text fehl, oder ein Vorgang des Access-Add-Ins zeigt auf der Registerkarte „Projekt“ des Arbeitsbereichs wartet auf <holder> an.

Mit einer Maschinensperre (--lock-file oder WKL_ACCESS_LOCK_FILE) lautet die Meldung Die Maschinensperre <datei> ist nach <n> s noch belegt: <inhaber>. Es wurde nichts ausgeführt; ..., bei dotnet build WKL010: Die Maschinensperre <datei> ist noch belegt: <inhaber>., und das Add-In zeigt Maschinensperre <datei>: <inhaber> an.

Umgebung

WKL Office SDK ab 0.2.0: jeder schreibende Befehl (aufgeführt unter „Ein Lauf je Projekt zur selben Zeit“ in der Befehlszeilenreferenz), die MSBuild-Tasks und das Access-Add-In.

Ursache

Zwei Läufe an einem Projekt würden gleichzeitig dieselbe Datenbank ersetzen oder dieselben Quellen schreiben. Jeder schreibende Lauf hält deshalb während seiner Arbeit die Datei obj/wkl-sdk.lock neben der Projektdatei. Der Inhaber in der Meldung nennt, wer sie hält: Prozess-ID, Programm (wkl-office.exe, dotnet.exe, MSACCESS.EXE), Befehl oder Vorgang und Beginn. Typische Inhaber:

  • ein Vorgang des Add-Ins in einem Access, das eine Datenbank des Projekts geöffnet hat (MSACCESS.EXE ... Access add-in Validate);
  • ein dotnet build, das ein Editor im Hintergrund gestartet hat;
  • ein zweites Terminal, in dem wkl-office läuft.

Die Maschinensperre gilt für den ganzen Computer: eine Datei, auf die sich alle Beteiligten geeinigt haben (Befehlszeilenreferenz). Ihr Inhaber kann ein Lauf des SDK in einem anderen Projekt oder einer anderen Sitzung sein oder ein anderes Werkzeug, etwa ein Testskript, das die Datei selbst angelegt hat.

Lösung

  1. Warten Sie, bis der genannte Lauf fertig ist, und starten Sie dann erneut. Das Add-In tut das von selbst: Sein Vorgang beginnt, sobald das Projekt frei ist.
  2. Ist der Lauf nicht erwünscht, beenden Sie ihn dort, wo er gestartet wurde: Abbrechen im Add-In, Strg+C im Terminal, Beenden im Editor.
  3. Existiert die Prozess-ID aus der Meldung nicht mehr, ist die Sperre bereits frei: Das Betriebssystem gibt sie frei, wenn der Prozess endet, auch wenn er abgebrochen wurde. Starten Sie erneut; die Datei obj/wkl-sdk.lock kann bestehen bleiben und muss nicht aufgeräumt werden.
  4. Maschinensperre: Eine Datei, die das SDK angelegt hat, verschwindet mit ihrem Lauf, auch wenn er abgebrochen wurde. Eine Datei, die bestehen bleibt, hat ein anderes Werkzeug angelegt; fragen Sie ihren Inhaber (Zeile holder:) oder beenden Sie dieses Werkzeug. Löschen Sie die Datei nur, wenn sicher ist, dass kein Lauf den Computer belegt. Um länger zu warten statt abzubrechen, erhöhen Sie --lock-wait.

Verwandte Themen

de/wiki/msaccess/sdk/troubleshooting/the-project-is-busy.txt · Zuletzt geändert: von Wolfgang van der Stille