Facepalm: MSB3021 – Gesperrte Dateien in Visual Studio

Nach etlichen Jahren der Nutzung von Visual Studio bin ich jetzt tatsächlich auch in diese Falle getappt, allerdings erst mit Visual Studio 2010 Express. Der Fehler soll aber bereits immer wieder seit Visual Studio 2003 aufgetreten sein.

Zufällig – bei mir mittlerweile bei jedem Build – tritt folgender Fehler auf:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2868,9): error MSB3021: Die Datei „obj\x86\Debug\starLiGHT.GameStudio.exe“ kann nicht in „bin\Debug\starLiGHT.GameStudio.exe“ kopiert werden. Der Prozess kann nicht auf die Datei „bin\Debug\starLiGHT.GameStudio.exe“ zugreifen, da sie von einem anderen Prozess verwendet wird.

Beim ersten Build funktioniert es immer und ab dem zweiten Build kann das Programm nicht mehr gestartet werden, da Visual Studio mit oben genannter Fehlermeldung abbricht. Erst ein Neustart des Visual Studio führt dazu, daß man wieder testen kann. Dies ist natürlich extrem nervig und auch nicht wirklich produktiv.

Es gibt eine Reihe von Workarounds (z.B. Verzeichnis umbennen), die zwar schneller sind als VS neu zu starten, aber trotzdem keine richtige Lösung.

Nachdem ich jetzt fast drei Tage an diesem Fehler nahezu verzweifelt bin, habe ich eben endlich die Ursache und damit auch eine Lösung gefunden. Die Ursache ist, daß Visual Studio in einem bestimmten Fall die erstellten Dateien des Projektes sperrt und zwar immer dann, wenn man die automatische Versionierung in der Datei AssemblyInfo.cs aktiviert hat, also genau dieses hier:

// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern 
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.52.0.*")]
[assembly: AssemblyFileVersion("0.52.0.0")]

Entfernt man „*“ und setzt manuell eine Versionsnummer verschwindet dieser Fehler dauerhaft…

Advertisements

Veröffentlicht am 25.06.2011 in Facepalm und mit , , , getaggt. Setze ein Lesezeichen auf den Permalink. 6 Kommentare.

  1. Danke für den Hinweis, der Fehler hat mich halb verrückt gemacht. Ist zwar bisher nur 2x aufgetreten aber wenn, dann ist es unerträglich.

    Bei mir ging es komischerweise nach der Installation des SP1 für VS wieder…

    Die Versionierung nutze ich eigentlich nicht, aber ggf. war es Auslöser durch ein Addin das ich nutze für die automatische Versions-Erhöhung (Version Increment)…

    • Es gibt noch den ein oder anderen Fall, bei dem dies auftreten kann, könnte also auch etwas anderes gewesen sein. Das mit der automatischen Versionsnummer führt aber bei jeder Änderung zu diesem Problem… Sehr nervig…

  2. Markus Schwalbe

    Danke, hat super funktioniert!

  3. Danke für den Hinweis. Ohne das Sternchen funktioniert es super!
    ich habe mich jetzt auch schon über einen Arbeitstag mit dem Problem herum geärgert…
    Eigentlich finde ich die automatische Versionierung ganz elegant. Aber mit solchen Seiteneffekten ist das Feature nicht nutzbar.

  4. Matthias Bergen

    Hammer! Danke! Klappt wunderbar!

  5. Danke auch hat geklappt. War fast verrückt!

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: