Was bewirkt die unterstützte supportOS-Einstellung hinter den Kulissen?

8

Ich kann nicht viel Dokumentation finden, aber in letzter Zeit musste ich das Windows Server 2012 R2 Platform Ready Test Tool ausführen, um einige MSVC ++ und C # -Produkte (.exe, Dienste, Bibliotheken, DLLs usw.) zu validieren Fehlermeldung, dass die supportedOS-Einstellung in einigen Projektmanifesten nicht verfügbar war.

Ich habe die Fehler behoben, aber ich kann mir nicht helfen, aber ich frage mich, was die Einstellung von supportedOS tatsächlich hinter den Kulissen tut. Angenommen, ich setze für alle meine Projekte die Einstellung supportedOS auf Windows 8.1, werden dann Fehler ausgelöst, wenn diese Produkte unter Windows 8 oder Windows 7 ausgeführt werden, obwohl sie bekanntermaßen auf diesen Betriebssystemen funktionieren?

Das meiste, was ich auf supportedOS finden konnte, ist sowas wie: Ссылка

    
Alexandru 10.04.2014, 19:50
quelle

1 Antwort

2

Pseudocode, wie Windows die unterstützten OS-Werte liest, sieht etwa so aus:

%Vor%

compatVer wird irgendwo innerhalb des Prozesses gespeichert, wahrscheinlich im PEB .

compatVer wird in bestimmten Funktionen mit der echten Windows-Version verglichen, um entweder neue Funktionen zu aktivieren oder das Verhalten zu ändern, damit es mit der Windows-Version kompatibel ist, für die die Anwendung entwickelt wurde. Einige der Verhaltensänderungen sind im Kompatibilitätskochbuch auf MSDN.

Da die supportedOS-Werte GUIDs sind, können sie nicht erraten werden, sodass Entwickler keine Unterstützung für Windows-Versionen beanspruchen können, die noch nicht veröffentlicht wurden. Daher wird die Windows 8-GUID keine Auswirkungen haben, wenn die Anwendung unter Windows 7 ausgeführt wird.

Es besteht das Risiko, dass Ihre Anwendung einen Fehler aufweist, der durch das Kompatibilitätsverhalten verdeckt wird, und möglicherweise durch Hinzufügen von supportedOS-Werten ...

    
Anders 01.01.2017 00:26
quelle

Tags und Links