2009-08-29 16 views
0

Ich versuche, Firefox auf meinem Windows Vista Ultimate-Computer zu erstellen. Ich erhalte immer den folgenden Fehler:nsinstall: Falsche Dateinummernfehler unter Vista

Ich habe gelesen, dass dieser Fehler wegen UAC in Vista verursacht wird. Hier sind die zwei Artikel, die mich zu dieser Schlussfolgerung führen. https://wiki.mozilla.org/Penelope_Developer_Page#Windows_Vista und http://www.kevinbrosnan.net/mozilla-build-error-nsinstall-bad-file-number

Mit dem Standard "Als Administrator ausführen" habe ich versucht, meinen Build zu wiederholen, aber ich bekomme den genau gleichen Fehler. Ich habe auch eine normale Eingabeaufforderung als Admin gestartet und bin dann zu der Batchdatei in mozilla-build (start-msvc8.bat) gegangen und habe sie ausgeführt. Immer noch der selbe Fehler am selben Punkt.

Irgendwelche anderen Erkenntnisse darüber, wie ich diesen Fehler oder vielleicht etwas anderes umgehen kann, verursachen den Fehler?

Hinweis: Ich habe auch in der Hoffnung, posted something here themenspezifische Hilfe zu bekommen, aber ich habe keinen Piep gehört ... Nachdem ich geschrieben, dass ich die Informationen über nsinstall gefunden. Wie auch immer, ich bevorzuge SO, also dachte ich, ich würde hier versuchen ...

Update: Ich habe versucht, die UAC vollständig zu deaktivieren, um das Problem zu beheben, wie von cnemelkasr vorgeschlagen. Ich habe den exakt gleichen Fehler erhalten. Dieses neue Wissen lässt mich denken, dass eine Datei oder ein Ordner fehlt ... Weiß jemand, der Erfahrung mit NSInstall hat, was der angegebene Fehler - schlechte Dateinummer - bedeuten könnte? Ich denke, es könnte sich auf eine Datei Handle ...

Antwort

0

Ich habe die Antwort auf meine Frage gefunden. Ich schreibe die Antwort hier, um die Antwort mit anderen zu teilen und diese Frage zu schließen.

Nach dem Deaktivieren der Benutzerkontensteuerung wurde vorgeschlagen, dass die Verzeichnistiefe NSInstall beeinträchtigt. Ich habe den Ordner von c:/Users/Frank/Documents/hg-repos/firefox-src-hgRepo/mozilla-fv-expirement/ nach C:/mozilla-fv-expirement/ verschoben. Alle vorherigen Build-Versuche wurden bereinigt und mein Build (mit deaktivierter UAC) wurde erneut redigiert und ich erhielt eine funktionierende Debug-Binärdatei.

Der Vorschlag wurde im Internet abrufbar: mozilla.dev.builds

0

Wenn es wirklich ein UAC-Fehler ist, können Sie versuchen, UAC insgesamt zu deaktivieren. Ich musste dies für mehrere Pakete tun. Es gibt zahlreiche Orte im Internet, um die Anweisungen dafür zu bekommen.

http://www.petri.co.il/disable_uac_in_windows_vista.htm ist einer von ihnen.

+0

Also, wie Sie von meinem Update oben sehen können, habe ich versucht, aber es hat nicht geholfen. Wenn Sie andere Vorschläge haben, bin ich offen für sie ... –

0

Die „Bad file number“ Nachricht in den Fällen, die ich gesehen habe, durch zu viele Argumente verursacht wird, zu execvp (command, argv) (oder ähnlich) Funktion übergeben. Aber nur von einige Programme. Eine alte Bash, sh oder ein Borland/Watcom-Programm in Ihrem PATH ist ein wahrscheinlicher Kandidat.

Wenn Sie also den Namen des Build-Verzeichnisses verkürzen, wird die Gesamtgröße der Befehlszeile (die schließlich an CreateProcess() übergeben wird) kürzer. Ich glaube nicht, dass UAC etwas damit zu tun hat, da ich das auch auf Win-XP gesehen habe. Aber es ist ein bisschen seltsam, Mozilla würde beim Bauen keine relativen Pfade benutzen. Ich denke, es verwendet ein Verzeichnis Präfix Wert in seinen Makefiles (ich habe noch nie versucht, es zu bauen).

Wenn man sich die Dokumentation sucht _execvp():
http://msdn.microsoft.com/en-us/library/3xw6zy53.aspx

E2BIG ist eine der möglichen errno Werte:
Der Platzbedarf für die Argumente und Umgebungseinstellungen überschreitet 32 ​​KB.

Nun, hier ist der seltsame Teil.

Fakt 1:
Auf Visuelle-C/MingW (alle Versionen), kehrt strerror(EBADF) nicht "Bad file number". (es gibt "Bad Dateibeschreibung") zurück.

Fakt 2:
Auf Borland CBuilder 5.6 und Watcom 1.9 (diese haben nicht die MSVC Laufzeit verwenden), strerror(EBADF) tatsächlich "Bad file number" zurückgibt.

Theorie:
ist möglich, dass Borland, Watcom (und anderen CRTs zu?) Mischt die Bedeutung von E2BIG und EBADF auf. Hat das irgendeinen Sinn ergeben? Bitte korrigieren Sie mich, wenn Sie eine bessere Theorie haben. Ich bin ein wenig verwirrt mich ...

Fazit:
Entweder die Größe Ihrer Umgebung (am einfachsten) verkürzen oder die Befehlszeile (nicht immer leicht) verkürzen.

--gv

Verwandte Themen