Verwandte löschen: How to force delete a file?Wie Netzwerk ausführbare Dateien im Einsatz während NAnt Build-
Ich habe einen NAnt Skript, das macht einen vollständigen Build und Deployment auf unsere Dev-Umgebung. Die Bereitstellung der C# .Net Win exe und ihrer verwendeten DLLs beinhaltet das Verschieben der Dateien an einen Netzwerkspeicherort, wo sie von unseren Testern und anderen Entwicklern ausgeführt werden.
<copy todir="${dest.dir}" overwrite="true" failonerror="false" >
<fileset basedir="${source.dir}" >
<include name="**/*" />
</fileset>
</copy>
Gerade jetzt, ruft das Skript die Aufgabe kopieren, mit Überschreiben = „true“, aber das schlägt fehl, wenn jemand die Anwendung ausgeführt wird, Reporting
nicht ‚source.dll‘ kopieren Kann 'dest.dll'. Der Zugriff auf den Pfad 'dest.dll' wird verweigert.
"dest.dll" ist eine der wichtigsten EXE-Abhängigkeiten, die mitkopiert werden. Im Moment habe ich eine von zwei Möglichkeiten: Entweder ich finde heraus, wer sie geöffnet hat und bitte sie, aufzuhören, oder ich sende eine E-Mail an unsere Systemingenieure und sie machen etwas Voodoo, um die gesperrte Datei zu löschen. Kann ich trotzdem etwas von meinem eigenen Voodoo in das NAnt-Skript einbauen, damit die Dateikopie immer gelingt?
Das Problem damit ist, dass nur für Prozesse auf dem lokalen Computer funktioniert. Ich glaube nicht, dass UnlockFile die Datei von einem anderen Benutzer in einer anderen Box entsperren könnte. – Dov
Sie können sich einige der Dienstprogramme von SysInternals anschauen - http://technet.microsoft.com/en-us/sysinternals/default.aspx, um zu sehen, ob es Befehlszeilen-Dienstprogramme gibt, die Sie verwenden können, die auf Remote funktionieren Computers. –
Es scheint, als ob einer dieser Dienstprogramme der einzige Weg gewesen wäre, es zu tun, aber ich gab im Grunde auf. – Dov