Studio, Compilieren, Exe kann nicht geschrieben werden

    • Allgemein

    Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

      Studio, Compilieren, Exe kann nicht geschrieben werden

      Moin Leute,
      ganz gewiss ist dieser Effekt nicht unbekannt:
      Beim laufenden Erstellen einer Exe in der Entwicklungsumgebung (hier: VS 2010, C#) kann diese nicht geschrieben werdfen, da sie von einem anderen Prozess verwendet wird.
      Dazu hatte ich schon mal geschrieben, dass man einfach zwischen Debug und Release hin- und herschalten müsse, das hat hier nicht geholfen, vielmehr musste ich das Studio schließen und wieder öffnen.
      Heute war es wieder soweit, mir fiel auf, dass das Hauptfenster der Anwendung im Designer geöffnet war.
      Wenn der Designer geschlossen und das Studio neu gestartet wird, compiliert das Programm wieder so, wie es soll.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()

      Hey @RodFromGermany,
      im Grunde eine sehr doofe Frage, weil ich weiß, dass du sehr erfahren bist, aber:
      Hast du einen sehr verheerenden Fehler in deinem Code, dass sich sogar das Studio aufhängt Könnte man das vielleicht mit einem Projekt von dir Nachstellen?
      Bisher habe ich dieses Problem noch nicht gehabt.

      Gruß,
      Drahuverar
      Option Strict On!
      AFAIK werden die (erzeugten) Dateien (also die Executable und DLLs zuerst mal in den \obj\<Konfiguration>\ geschrieben. Von da aus wird nach dem Erstellen eine Kopie der benötigten Dateien nach \bin\<Konfiguration>\ kopiert.

      Kannst du sicherstellen, dass der Designer nicht vielleicht doch die Datei unter \obj\Debug\ offen hatte?
      In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
      @Drahuverar Das ist ein Uralt-Projekt, das mir draufgedrückt wurde, ich ziehe da momentan viel glatt, aber verheerend würde ich das nicht nennen wollen.
      Ich werd das mal mit dem 2013er Studio probieren.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!
      Das Problem kann aber auch bei Konsolenanwendungen und Libraries auftreten, bei mir besonders gerne wenn ich beim debuggen bin und die Anwendung durch "Debugging beenden" in VS beende.
      Gelegentlich lässt sich das Problem durch "Projektmappe bereinigen"/"Bereinigen" des Projektes lösen.

      @Drahuverar Das Problem ist nicht der Code, sondern das die Datei nicht geschrieben werden kann, weil ein anderer Prozess (vhost meist) noch darauf zugreift.

      slice schrieb:

      weil ein anderer Prozess (vhost meist) noch darauf zugreift
      Das hatte ich, wie gesagt, auch schon, da hat geholfen, zwischen Debug und Release zu switchen, hier hat das leider nicht geholfen.
      Dieser Effekt hier (mit dem Designer) ist streng reproduzierbar (habs noch mal getestet):
      Mainform im Designer öffnen,
      Code verändern,
      compilieren => geht nicht
      Designer zu,
      Studio neu starten,
      Code verändern,
      compilieren => geht beliebig oft.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!

      slice schrieb:

      vhost meist
      Projekteigenschaften -> Debuggen -> "Visual Studio-Hosting Prozess aktivieren" abhaken, Projektmappe bereinigen, alles aus \obj\ und \bin\ löschen und neu builden. Hilft jedenfalls meistens bei mir
      In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

      Radinator schrieb:

      Hilft jedenfalls meistens bei mir
      Hier leider nicht.
      Hab das Projekt unter Studio 2013 getestet, da gab es keine Probleme.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!
      @Radinator Das deaktivieren des Hosting Prozesses mag evtl. helfen, hat aber auch seine Schattenseiten => Hosting Process (vshost.exe)
      Okay, verstehe.
      Ein anderer Einwand:
      Kann es sein, dass ein Antivirenprogramm dazwischen funkt?
      Ich habe es auch öfter gehabt, vor allem wenn ich etwas verschlüsseln möchte, dass die Datei nicht kompiliert/erstellt werden kann, weil das Antivirenprogramm (anhand welcher Kriterien auch immer :cursing: ) die Datei direkt in Quarantäne schiebt/blockiert oder was auch immer...
      Option Strict On!
      @Drahuverar Wenn ein Antivirenprogramm dazwischen funkt, kommt unmittelbar eine Meldung vom Antivirenprogramm, zumindest von denen, die ich kenne.
      Da hilft manchmal das Umschalten zwischen Debug und Release.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!