none
FileVersionInfo liefert null RRS feed

  • Frage

  • Hallo

    Ich vermute eigentlich einen Windows Fehler. Aber evtl. weis auch hier einer von euch Rat.

    Bei großen EXE Dateien ist mir aufgefallen, dass meistens im Windows Explorer (XP) kein Icon mehr angezeigt wird. Das Icon ist für mich nur nebensächlich. Ich brauche eher die Versionsressource in der EXE. Doch die scheint, genau so wie das Fileicon, von Windows nicht ausgelesen werden zu können. Es ist echt etwas verwirrend. Ich habe noch keine Regelmäßigkeit feststellen können. In Vista funktioniert alles ohne Probleme. Doch auf einigen XP Rechnern (nicht auf allen) scheint das ein echtes Windows Problem zu sein. Aber auch wenn ich alle Windows Updates auf den betroffenen Rechnern mache, so hat das keinen Einfluß auf dieses Verhalten.

    Code Snippet

    private void button1_Click(object sender, EventArgs e)
    {
       string filePath = textBox1.Text.Trim();

       // Get version resources:
       FileVersionInfo fileVersionInfo = null;
       try
       {
           fileVersionInfo = FileVersionInfo.GetVersionInfo(filePath);
       }
       catch (Exception ex)
       {
           MessageBox.Show("File not found.");
           return;
       }

       if (fileVersionInfo == null)
       {
           MessageBox.Show("fileVersionInfo is null.");
           return;
       }

       if (String.IsNullOrEmpty(fileVersionInfo.InternalName))
       {
           MessageBox.Show("InternalName is null or empty.");
           return;
       }

       string tempInfo = "";
       tempInfo += "FileName" + " = " + fileVersionInfo.FileName + "\r\n";
       tempInfo += "InternalName" + " = " + fileVersionInfo.InternalName + "\r\n";
       tempInfo += "FileVersion" + " = " + fileVersionInfo.FileVersion + "\r\n";
       tempInfo += "ProductVersion" + " = " + fileVersionInfo.ProductVersion + "\r\n";
       tempInfo += "CompanyName" + " = " + fileVersionInfo.CompanyName + "\r\n";

       MessageBox.Show(tempInfo);


    Aufgefallen ist es mir, da unseren neuen Setups jetzt ein paar mehr Dateien enthalten und somit rund 480 MB haben. Vorher hatten die immer nur 320 MB. Da klappte alles ohne Probleme. Jetzt (ich schätze mal) bei > 450 MB haben viele Properties der FileVersionInfo Klasse den Wert null.

    Ich persönlich verwende eine EXE, die mit NSIS erstellt wurde. Nachzuvollziehen ist dieses Verhalten aber mit allen großen EXE Dateien. Einen Zusammenhang mit NSIS schließe ich also aus. Auch wenn ich mit Visual Studio die EXE öffne, werden die Versionsressourcen ordnungsgemäß angezeigt. Die Daten sind also 100%ig in der EXE enthalten. Aber Windows kann die anscheinend nicht anzeigen bzw. auslesen.

    Gibt es dafür evtl. eine Abhilfe?

    Besten Dank für eure Hilfe.





    Montag, 9. Juni 2008 07:08

Antworten

  • Microsoft hat bestätigt, dass es sich um einen Bug von Windows handelt, der aber leider nicht mehr gefixed wird.
    • Als Antwort markiert Healy76 Mittwoch, 9. Juni 2010 10:17
    Mittwoch, 9. Juni 2010 10:17