none
Eigenartiger, ja scheinbar sinnloser Compilierungsfehler: Error MSB3541, Visual Studio 2019 RRS feed

  • Frage

  • Guten Morgen,

    ein Fehler wurde während der Kompilierung gemeldet:

    1>------ Erstellen gestartet: Projekt: RPasswMgr, Konfiguration: Debug Any CPU ------

    1>  RPasswMgr -> U:\Entwicklung\Visual Studio 2019\C#\Projects\RPasswMgr\RPasswMgr\RPasswMgr\bin\Debug\RPasswMgr.exe

    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(4834,5):

    error MSB3541: Files enthält einen ungültigen Wert "bQ?__S==========

    Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========

    und ein Meldungsfenster angezeigt:

    

    Die Fehlermeldung verweist auf die Zeile Nr. 4834 der Datei C:\Program Files (x86)\Microsoft Visual Studio\ 2019\ Community\ MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets

    Hier sollen - lt. Hinweis in der Datei - im Ausgabeverzeichnis sich befindende Dateien des letzten Build gelöscht werden, sodaß nur die neuesten Dateien sich dort befinden.

    4832 <!-- Find all files in the final output directory. -->

    4833 <FindUnderPathPath="$(OutDir)"Files="@(_CleanOrphanFileWrites)">

    4834  <Output TaskParameter="InPath"ItemName="_CleanOrphanFileWritesInOutput"/>

    4835 </FindUnderPath>


    Der fehlerhafte Wert in Files, "bQ?__S", wurde verzweifelt gesucht, aber nicht gefunden! Nun habe ich die im Ausgabeverzeichnis befindlichen Dateien von Hand gelöscht und neu kompiliert. Ergebnis, wie oben. Dann habe ich die im Ausgabeverzeichnis befindliche Exe-Datei mittels Doppelclick zu starten versucht und,siehe da, - die dort befindliche Exe startete und lief fehlerlos! Nun wollte ich es genau wissen: Ich löschte die Exe des letzten Build nun nicht manuell, setzte ich meinen Quellcode eine MessageBox mit einer Fakemeldung ein und startete die Kompilierung erneut. Die Fehlermeldung kam wieder. Nun ging ich wieder auf das Ausgabeverzeichnis, fand aber dort nur einen Dateisatz vor. Ich startete das Programm wieder mittels Doppelklick Ausgabeverzeichnis, und das Fenster der MessageBox mit der Fakemeldung wurde angezeigt! Das Programm lief fehlerlos! Es war also das letzte Build, das vorhergehende war gelöscht!

    Die Fehlermeldung war offensichtlich sinnlos. Die einzige Änderung betraf das Verhalten der IDE. denn bei Click in der IDE auf "Start" wurde normalerweise das neueste Build gestartet, was jetzt nicht erfolgte.

    Frage: Ist das ein Bug in der IDE? Wie kann ich falsche Inhalte in Files feststellen, bzw. deren Herkunft ermitteln? Der Debugger nutzt dabei nichts.

    Für Informationen wäre ich dankbar.

      Klaus Helmut Renders.


    Klaus

    Freitag, 9. August 2019 09:48

Antworten

Alle Antworten

  • Hallo Klaus, 
    Dr. Google doch ein wenig Hilfe:
    https://stackoverflow.com/questions/17906647/error-msb3541-files-has-invalid-value
    Der Thread ist aus 2015. Dort steht man soll schauen ob es hilft das Output-Verzeichnis zu leeren.
    Das obj-Verzeichnis. Weiter sollte man nach dem angemeckerten Inhalt suchen- in der kompletten Solution.
    Der Fehler kommt sich nicht aus der IDE. Diese überbringt ja nur die Hiobsbotschaft vom Compiler.
    HTH
    Grüße Alexander 

    • Als Antwort markiert m-thaddaeus Sonntag, 11. August 2019 08:10
    Freitag, 9. August 2019 12:29
  • Guten Tag Alexander,

    herzlichen Dank für Deinen Hinweis, es funktioniert wieder! Ich kann nun weiter arbeiten. Allerdings habe ich die Ursache nicht gefunden.

    Klaus.


    Klaus

    Sonntag, 11. August 2019 08:13