Sysnative unter Vista RTM

417
fowlball1010

Ich schreibe gerade ein Batch-Skript, das Prozesse auf einem Betriebssystem startet. Dieses Batch-Skript wird von einer Testanwendung aus aufgerufen, die als 32-Bit-Anwendung auf 32-Bit- und 64-Bit-Betriebssystemen erstellt und ausgeführt wird. Das Batch-Skript lautet wie folgt:

set EXE=%1 if exist %WINDIR%\sysnative\%1 ( set EXE=%WINDIR%\sysnative\%1 ) start "" "%EXE%" 

Ich verwende die Variable sysnative, um 64-Bit-Anwendungen auf 64-Bit-Betriebssystemen und 32-Bit-Anwendungen auf 32-Bit-Betriebssystemen zu starten. Ich verwende dieses Skript auf Betriebssystemen von Vista und darüber hinaus. Es funktioniert einwandfrei auf allen Betriebssystemen außer Windows Vista x64 RTM. Beim Aufruf erhalte ich eine Fehlermeldung "Die Anwendung konnte nicht gestartet werden, weil ihre Side-by-Side-Konfiguration nicht korrekt ist. Weitere Informationen finden Sie im Anwendungsereignisprotokoll."

Ich habe eine 32-Bit-Befehlszeile unter Windows Vista x64 RTM geöffnet, zu C: \ Windows \ sysnative navigiert und versucht, notepad.exe, calc.exe usw. von dort aufzurufen und immer die gleiche Fehlermeldung zu erhalten. Ich habe auch versucht, die Microsoft Visual c ++ 2008 Redistributable Packages zu deinstallieren und erneut zu installieren, jedoch ohne Erfolg. Die Ereignisprotokolle für Anwendung / Sicherheit / System enthalten keine diesbezüglichen Informationen / Warnungen / Fehlermeldungen. Dieses Problem tritt nur bei Windows Vista x64 RTM auf. Irgendwelche Gedanken?

0
Die in Vista 64-Bit verfügbare SysNative-Variable _ist_ klingt also eher nach WinSXS Ihres Vista als beschädigt. Tun dies auf jedem Vista-Computer oder nur dem von Ihnen getesteten? Hast du es schon auf einem neuen Vista installiert? Ƭᴇcʜιᴇ007 vor 10 Jahren 0
Es tritt nur auf diesem Vista-Computer auf. Die Skripts funktionieren auf Vista x86 / x64 SP1 und SP2 sowie Vista x86 RTM. Es trat nur auf dieser bestimmten Maschine auf. Ich werde versuchen, eine neue Vista-Installation zu erstellen und zu sehen, ob das gleiche Problem auftritt. fowlball1010 vor 10 Jahren 0

2 Antworten auf die Frage

1
magicandre1981

Sie vermissen eine C ++ - Laufzeit. Führen Sie die Eingabeaufforderung (cmd.exe) mit Administratorrechten aus und führen Sie den folgenden Befehl aus:

SxsTrace Trace -logfile:SxsTrace.etl 

Führen Sie nun das Skript aus, das den SideBySide-Fehler verursacht.

Kehren Sie zur Eingabeaufforderung zurück, und drücken Sie ENTER / RETURN, um die Datei SxsTrace.etl zu generieren. Geben Sie jetzt Folgendes ein:

sxstrace Parse -logfile:SxSTrace.etl -outfile:SxSTrace.txt 

Öffnen Sie nun die SxSTrace.txt-Ablaufverfolgung und prüfen Sie, welche VC ++ - Laufzeitumgebung fehlt.

Wenn Sie sich nicht sicher sind, laden Sie die vollständige SxSTrace.txt in einen Cloud-Dienst / Pastebin hoch und veröffentlichen Sie einen Link hier.

Ich habe die oben beschriebenen Schritte ausgeführt und bin mir nicht sicher, welches VC ++ bei der Ausgabe fehlt. Die Ergebnisse werden unter [link] (http://pastebin.com/GaE4zE5P) veröffentlicht. fowlball1010 vor 10 Jahren 0
ok, sieht aus wie keine Laufzeit fehlt. Ich kann wirklich nichts Nützliches daraus erkennen. Vielleicht ist dies ein Fehler, der mit der Sp1 behoben wurde. magicandre1981 vor 10 Jahren 0
-1
Ƭᴇcʜιᴇ007

Es tritt nur auf diesem Vista-Computer auf.

Die SysNative-Variable ist in Vista 64-Bit verfügbar. Sie hört sich also eher an, als sei der WinSxS Ihres Vista beschädigt.

Die einfachste Lösung für ein durcheinandergebrachtes WinSxS besteht darin, das Betriebssystem von Grund auf neu zu installieren.

Eine Alternative ist, den Besitz von WinSxS und seiner Dateien gewaltsam zu übernehmen und dann die Dateien von einem bekannten 64-Bit-Vista-Computer zu kopieren, den Besitz wieder zu ändern und eine SFC /scannow.

Weitere Einzelheiten zur Durchführung dieser Handlungen liegen außerhalb des Rahmens dieser Frage.

Ich habe eine neue Neuinstallation des Vista x64 OS RTM erstellt und bei dem Versuch, dieselben Schritte wie oben auszuführen, das gleiche Problem festgestellt. Ich habe die Sxstrace wie von @ magicandre1981 vorgeschlagen ausgeführt und die Ergebnisse auf Pastebin gepostet (siehe Kommentar zu seinem Vorschlag). fowlball1010 vor 10 Jahren 0