ページ 1 / 1
OSのビット数を調べたいのですが・・・
Posted: 2018年10月12日(金) 13:33
by tosh
お世話になります。
VB.netで、現在実行されているOSが32bitか64bitか確認するため、判定文で「System.Environment.Is64BitOperatingSystem」を使おうとしていますが、「Is64BitOperatingSystemはEnvironmentのメンバーではありません」と表示され、コンパイルエラーになってしまいます。
.NET Frameworkは4.6が入っているのですが、使うには宣言とか参照の追加とか、何らかの準備が必要なのでしょうか。
Re: OSのビット数を調べたいのですが・・・
Posted: 2018年10月12日(金) 22:08
by Bull
回答になってなくて申し訳ないですが、下の画像は Visual Studio でオブジェクト ブラウザーを開いているスクリーンショットです。
System.Environment.Is64BitOperatingSystem は mscorlib に含まれるようですので、特別な Imports などは必要ないと思われます。
コード:
Module Module1
Sub Main()
If Environment.Is64BitOperatingSystem Then
Console.WriteLine("64Bit OS です")
Else
Console.WriteLine("64Bit OS ではありません")
End If
End Sub
End Module
こちらでは、このようなソースで問題なくコンパイルと実行ができています。
Environment の他の関数(GetEnvironmentVariablなど)も使用できないのですか?
Re: OSのビット数を調べたいのですが・・・
Posted: 2018年10月12日(金) 22:17
by Bull
追記します。
こちらの環境は
Windows 7 Pro (32bit) Visual Studio 2015
Windows 8.1 Pro (64bit) Visual Studio 2017
.NET Framework は 4.5 です。
Re: OSのビット数を調べたいのですが・・・
Posted: 2018年10月15日(月) 11:25
by tosh
Bull様
回答ありがとうございます。
オブジェクトブラウザで確認してみましたが、Environmentの下にIs64BitOperatingSystemは入っていませんでした。
職場の同僚の指摘によると、対象のソリューションは元々VB2010で作成し、Windows7上で動作していたものであり、mscorlibのバージョンが2.0.0.0であるのが原因かも知れないとの事でした。
仮に追加できたとしても、Windows7上に持って行ったときに動かないと意味がないので、別の方法を試してみようと思います。
Re: OSのビット数を調べたいのですが・・・
Posted: 2018年10月16日(火) 03:24
by YuO
tosh さんが書きました: ↑5年前
職場の同僚の指摘によると、対象のソリューションは元々VB2010で作成し、Windows7上で動作していたものであり、mscorlibのバージョンが2.0.0.0であるのが原因かも知れないとの事でした。
同僚の方が指摘されている内容に含まれているとは思いますが,プロジェクトのTarget Frameworkが.NET Framework 3.5になっている,ということはないでしょうか。
Windows 7は標準では.NET Framework 3.5が入っていて.NET 4系が入っていないため,プロジェクトが.NET 2.0/3.0/3.5向けに作られている可能性があります。
上記であるならば,解決策としてはいくつかあると思います。