2017-12-20 5 views
4

自分のコンピュータにクライアント64ビットWindows 7がインストールされています。同じコードの下に、ダミーのアプリケーションと私のアプリケーションで異なる結果が得られます。私のアプリケーションはグループプロジェクトで25パッケージあります。TOSVersionが間違った結果を返す

TOSVersion.Name: Windows 7 
TOSVersion.ToString: Windows 7 Service Pack 1 (Version 6.1, Build 7601, 64-bit Edition) 

TOSVersion.Name: Windows XP 
TOSVersion.ToString: Windows XP Service Pack 3 (Version 5.1, Build 2600, 64-bit Edition) 

何か問題が発生している可能性がありますか?

マニフェストファイルの設定自動生成。 .manifestファイルはありませんが、どちらのプロジェクトでも.resファイルに "supportedOS"というエントリが見つかりました。それらの両方は、以下のように同じ内容を持っている:

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
    <application> 
     <!--The ID below indicates app support for Windows Vista --> 
     <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
     <!--The ID below indicates app support for Windows 7 --> 
     <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> 
     <!--The ID below indicates app support for Windows 8 --> 
     <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> 
     <!--The ID below indicates app support for Windows 8.1 --> 
     <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> 
     <!--The ID below indicates app support for Windows 10 --> 
     <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>   
    </application> 
</compatibility> 
+1

回答はアプリケーションマニフェストに記載されている可能性があります。具体的には、サポートされているOSエントリにあります。 –

+6

..または互換性の設定.. –

+0

ありがとう皆さん。問題はSertaçが言ったとおりです: –

答えて

6

可能性の高い原因はcompatibity (a shim)を修正するが、クライアントのコンピュータ上で実行可能に適用されていることです。具体的にはWinXPSP3VersionLie修正。 TOSVersionレコードはGetVersionExを使用してクラスコンストラクタのOSバージョンを決定します。これはshimによってdocumentedとして実行されます。

確認する1つの方法は、イベントログを調べることです。イベントは、プログラムのプロパティダイアログ(support article)またはProgram Compatibility Assistantを介して、またはApplication Compatibility Toolkitを通じて修正プログラムを適用しているユーザーのいずれかで記録されます。実行可能ファイルの名前を検索することができます

Event Log\Application and Services\Microsoft\Windows\Application-Experience\Program-Telemetry 
関連する問題