VB2008はWindows7に対応しますか?

解決


つくだ  2010-01-11 06:29:37  No: 146675  IP: [192.*.*.*]

今、Windows VistaでVB2008を使用してプログラムを作成しています。
セットアッププロジェクトでインストーラーを作成し、他のPCに作成プログラムをインストールしています。
ここで質問ですが、手元にWindows7のPCがないので確認できていませんが、
Windows7のPCでも問題なくこのプログラムをインストールし、動作させることができるでしょうか?
また、32bitのマシン(XP・Vista)のみで開発・動作確認をしていないのですが、
64bitマシン(Vista・7)でも動作させることができるのでしょうか?
よろしくお願いいたします。

編集    削除
ろくろ  2010-01-11 06:48:01  No: 146676  IP: [192.*.*.*]

"C:\Program Files\Microsoft Windows 7 Upgrade Advisor\WindowsUpgradeAdvisor.exe"
これで確かめてください

編集    削除
ろくろ  2010-01-11 06:49:22  No: 146677  IP: [192.*.*.*]

↑間違い
Microsoft Windows 7 Upgrade で確かめてね

編集    削除
YuO  2010-01-11 11:13:30  No: 146678  IP: [192.*.*.*]

.NET Framework 3.5自体はWindows 7対応です。
ただし,それを使って作られたソフトウェアがWindows 7対応かどうかはソフトウェアに依存します。
Windows Vistaで動くのであれば,おそらくWindows 7上でも動くとは思います。

x64環境でも,基本的には動くはずです。
ただし,例えば.mdbファイルを扱っていた場合,x86をターゲットCPUとしておかなければ動作しなくなる,などの問題は発生します。
また,インプロセスCOMやネイティブDLLを扱う場合もx64では動かないものも多々あると思われます。

編集    削除
つくだ  2010-01-13 07:41:13  No: 146679  IP: [192.*.*.*]

YuOさん、ご回答ありがとうございます。
例えば、mdbを使用するプログラムの場合、YuOさんがおっしゃっている「x86をターゲットCPUとしておかなければ動作しなくなる」というのは、
構成マネージャの画面で、プラットフォームにx86(デフォルトではAny CPU)を指定すれば、
64bitマシンでもmdb使用プログラムが動作するということなのでしょうか?

編集    削除
YuO  2010-01-13 11:23:38  No: 146680  IP: [192.*.*.*]

> 例えば、mdbを使用するプログラムの場合、YuOさんがおっしゃっている「x86をターゲットCPUとしておかなければ動作しなくなる」というのは、
> 構成マネージャの画面で、プラットフォームにx86(デフォルトではAny CPU)を指定すれば、
> 64bitマシンでもmdb使用プログラムが動作するということなのでしょうか?

・起動アセンブリがx86とマークされている
・.mdbを取り扱うアセンブリがx86とマークされている
を満たせば,動作します。
.dll中で.mdbを取り扱っている場合に,起動アセンブリがAny CPUだと,x64 OS上ではそもそもその.dllを読み込む事に失敗します。
# 64bitプロセス中に32bit DLLを読み込もうとしたため。

ただし,.mdbにこだわる必要がなければ,Microsoft SQL Server Compact 3.5の利用も考えるべきでしょう。
こちらは,64bit版のADO.NETプロバイダも存在します。
http://www.microsoft.com/downloads/details.aspx?FamilyID=7849b34f-67ab-481f-a5a5-4990597b0297&displaylang=ja
# これはこれで,ビューがない,ストアドがない,SQL Server名乗るわりにT-SQLの互換性がない,と使いにくい物ではありますが……。


以下,MSKK赤間氏のblogへのリンクになります。これらは64bitの問題を考えるのであれば,一度読んでおくと良いでしょう。
BLOG: とあるコンサルタントのつぶやき : .NET Framework アプリケーションの 64bit 対応
http://blogs.msdn.com/nakama/archive/2008/10/30/net-framework-64bit.aspx
BLOG: とあるコンサルタントのつぶやき : Part 1. 64 ビット Windows OS の基本知識
http://blogs.msdn.com/nakama/archive/2008/10/30/part-1-64-windows-os.aspx
BLOG: とあるコンサルタントのつぶやき : Part 2. .NET Framework 2.0 アプリケーションの 64 ビット対応
http://blogs.msdn.com/nakama/archive/2008/11/06/part-2-net-framework-2-0-64.aspx
BLOG: とあるコンサルタントのつぶやき : Part 3. ASP.NET 2.0 Web アプリケーションの 64 ビット対応
http://blogs.msdn.com/nakama/archive/2008/11/13/part-3-asp-net-2-0-web-64.aspx

で,今回の場合は,Part 2の[Step 8. コンソールアプリケーションにおけるコンパイルスイッチの意味]がそのまんまになります。
> 例えば、.NET のコンソールアプリケーションが Access .mdb ファイルにアクセスするために内部で Jet OLE DB プロバイダを使っている場合を考えてみましょう。
> 実は、Jet OLE DB プロバイダは 64 ビット版ドライバが提供されていません。
> このため、.NET アプリケーションが 64 ビット動作してしまうと、ドライバが見つからずにエラーが発生する、という現象が起こります。


次に,64bit版のJET OLE DB プロバイダが存在しないことを説明する公式の文書をあげておきます。
MSKB: [機械翻訳] Microsoft OLE DB プロバイダー Jet の Microsoft Access ODBC ドライバーは 32 ビット バージョンのみで使用できます。
http://support.microsoft.com/kb/957570

編集    削除
つくだ  2010-01-17 05:05:49  No: 146681  IP: [192.*.*.*]

YuOさん、詳しいご説明ありがとうございました。
参考のサイトで勉強します。
本スレッドはこれにて終了とさせて頂きます。

編集    削除