Ich arbeite an einer Lösung bestehend aus 8 .NET-Projekten. Da ich TDD praktiziere, muss ich meine Lösung sehr oft neu kompilieren. In letzter Zeit habe ich über jedes zweites Mal die folgende Fehlermeldung erhalten, wenn zu kompilieren versuchen:Visual Studio 2008 sperrt DLL in bin-Ordner und lässt es nicht los
Fehler 2 können nicht kopiert werden Datei „obj \ Debug \ Zeiterfassung.Tests.dll“ zu „ist \ Debug \ Zeiterfassung. Tests.dll ". Der Prozess kann nicht auf die Datei 'bin \ Debug \ Zeiterfassung.Tests.dll' zugreifen, da sie von einem anderen Prozess verwendet wird.
Zeiterfassung.Tests.dll ist die DLL, die von einem meiner Projekte generiert wird (es ist das Unit-Test-Projekt). Es ist immer diese DLL, die nicht kopiert werden kann und den Fehler verursacht. Alles andere funktioniert in 100% der Fälle.
In etwa 9/10 Mal kann ich das Problem "lösen", indem ich meine Lösung neu kompiliere. Aber wenn das Problem wirklich schlecht wird, wird das Projekt einfach nicht erfolgreich kompiliert, egal wie oft ich es versuche und ich muss die IDE neu starten.
Ich habe microsoft's handle.exe verwendet, um festzustellen, welcher Prozess die DLL schließt und es devenv.exe ist. Ich habe auch versucht, die DLL von Hand zu löschen und es kann wirklich nicht gelöscht werden, bis ich die IDE neu starte.
Last but not least habe ich versucht, <GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
zu meinem Projekt hinzuzufügen, wie in einem anderen Forum vorgeschlagen, aber das hat nicht geholfen.
Bitte helfen! Dieses Problem beginnt mich wirklich verrückt zu machen.
Bearbeiten: Ich könnte auch hinzufügen, dass ich sicher, dass meine Komponententests beendet sind, wenn dieses Problem auftritt. Trotzdem bleibt die DLL gesperrt. Ich führe meine Tests mit dem Resharper Unit Test Explorer durch.
Wenn das funktionierte, macht es mir Sorgen. Das bedeutet, dass Sie irgendwo in Ihrem Code ein Problem haben, das Sie versehentlich hinzugefügt und jetzt entfernt haben. Es könnte später zu Instabilität führen. – Randolpho
Es scheint eher so, als hätte ich innerhalb der letzten Tage ein Problem eingeführt, das zu diesem Problem geführt hat, und jetzt habe ich das Problem mit meinem Code behoben, indem ich auf die vorherige Codeversion zurückkehrte. –
Vielleicht müssen Sie nur neu starten, verwenden Sie Windows lol. –