VB2010のプログラムを2008で起動させるには??

タグの編集
投稿者 GUPPY  (中学生) 投稿日時 2010/10/26 21:39:10
私はVB2008を現在使用しています。
VB2010はPCの性能が追いついていけないので使えません。

このサイトに投稿されているプログラムはほとんどが2010ように作られていて、私の環境では開くことも
.exeを起動して遊んだりすることもできません。

以前、少し改良をすると2008でも開けると聞いたのですが本当でしょうか?
本当なら方法を教えてください。
また、別の方法で開いたり起動したりする方法があれば教えていただけると幸いです。

よろしくお願いします。
投稿者 パールマン  (社会人) 投稿日時 2010/10/27 01:13:27
はじめまして、パールマンと申します。

>
> このサイトに投稿されているプログラムはほとんどが2010ように作られていて、私の環境では開くことも
> exeを起動して遊んだりすることもできません。
>

実際には[2010]と書かれていても、手直しを加えれば[2008]で動作すると思われます。
お試しになりたい具体的なプログラムの名前を書かれたほうが、回答してくださる皆さんに
伝わると思います。
手直しの方法についてですが、[2010]のプロジェクトファイルを[2005]で開くことはできませんから、
手順1.
空のプロジェクトを作成する。
手順2.
フォーム・クラスなどプロジェクトを構成しているオブジェクトを追加する。
手順3.
コンパイルして、エラー・警告から[2008]で解釈されない箇所を手直しする。
手順4.
ビルドする。

いかがでしょうか。
追加する。
投稿者 GUPPY  (中学生) 投稿日時 2010/10/27 20:51:24
ありがとうございます。

試してみたいソフトはこのサイトに公開されている「スターエース」です。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/10/27 22:21:45
>> 実際には[2010]と書かれていても、手直しを加えれば[2008]で動作すると思われます。

少々力技ですが、*.sln ファイルをメモ帳等で開き、先頭にある
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Basic Express 2010

の行を手直しすれば、下位バージョンでも開ける可能性があります。
上位バージョンで追加された機能を使っている場合は、その部分がエラーになるでしょうけれども。

Microsoft Visual Studio Solution File, Format Version 7.00 → VS.NET(2002)
Microsoft Visual Studio Solution File, Format Version 8.00 → VS.NET2003
Microsoft Visual Studio Solution File, Format Version 9.00 → VS2005
Microsoft Visual Studio Solution File, Format Version 10.00→ VS2008
Microsoft Visual Studio Solution File, Format Version 11.00→ VS2010


> 試してみたいソフトはこのサイトに公開されている「スターエース」です。
これですか。
http://homepage1.nifty.com/rucio/main/DownLoad/Index_dl.htm
VB2010のプロパティ構文を使っているとありますね。

たとえば、"SoundeComposer.vb" の中では
Public Property IsLoop As Boolean
とありますが、この構文は VB2008 以下では使えませんので、
以下のように書き換える必要があるかと思います。直す場所はここだけでは無いですが。

Private _IsLoop As Boolean
Public Property IsLoop As Boolean
    Get
        Return _IsLoop
    End Get
    Set(ByVal value As Boolean)
        _IsLoop = value
    End Set
End Property
投稿者 パールマン  (社会人) 投稿日時 2010/10/27 23:42:17
こんばんは、パールマンです、先日は有難うございました。

魔界の仮面弁士さんも書かれていますが、Visual Basic 2010では、「自動実装プロパティ」と呼ばれる機能が導入されました。

‘スターエース’のコードでは、数えてみましたところ7つありました。
魔界の仮面弁士さんの方法でソリューションファイルを開けられましたら、
「Public property」をプロジェクト内から探し出して、書き換える必要があります。
投稿者 パールマン  (社会人) 投稿日時 2010/10/27 23:51:37
追伸

このスレッドの、私の最初のレスで「空のプロジェクト・・・」と、いかにも簡単に解決できそうな
ことを書いてしまいました。
実際にはこの方法では全く対応できません。

混乱の元となることを書いてしまい、申し訳ありません。
この場を借りまして、お詫び申し上げます。
投稿者 よねKEN  (社会人) 投稿日時 2010/10/28 23:34:14
先の 魔界の仮面弁士 さんの回答に沿ってやると
VB2008で実行できる状態まで持っていけますね。
実際に修正してみました。

(1) Star.slnファイルの修正

> Microsoft Visual Studio Solution File, Format Version 11.00
の箇所の11.00を「10.00」に修正

※このやり方は完全な形でのslnファイルの修正方法ではないため、
 PC環境によっては、slnファイルをダブルクリックしてVisual Studioを起動することが
  できないかもしれません。(私のPCでは複数のバージョンのVisual Studioを
  インストールしているので関連付けによる起動はうまく行きません。) 

(2) VS2008を起動して、メニュー[ファイル]-[プロジェクトを開く]を実行して、
Star.slnを開きます。

(3) VS2008のメニュー[ビルド]-[Starのビルド]からビルドする。
    →たくさんのエラーが発生

(4) 以下のファイルのクラスについて自動実装プロパティを
     通常のプロパティの宣言方法での記述に修正する。

   ・SoundComposer.vbファイル
     BGMクラス → 3箇所
        - FileNameプロパティ
        - IsLoopプロパティ
        - IsWaitプロパティ
   ・UnitCollection.vbファイル
     UnitCollectionクラス → 4箇所
        - Enemiesプロパティ
        - Alliesプロパティ
        - Neutralsプロパティ
        - Itemsプロパティ
   ・UnitBase.vbファイル
     UnitBaseクラス → 2箇所
        - AttackPriorityプロパティ
        - PowerPointプロパティ

という流れで修正し、再度、ビルドし、エラーがすべて無くなったことを確認。
その後、実行します。成功していればゲームが起動しますので、これで作業完了です!

--
上記の修正が必要なプロパティのうち、FileName、IsLoop、IsWaitの3つのプロパティは、
魔界の仮面弁士さんの回答にある方法で自動実装プロパティを通常のプロパティに編集すればOKです。
それ以外のプロパティについては、自動実装プロパティに初期値が設定されている関係で、
少しだけ工夫がいります。以下のような手順でできます。

Enemies、Allies、Neutrals、Itemsについては、Enemiesを例にとると以下のような編集方法になります。
Public Property Enemies() As New List(Of UnitBase)
  ↓
Private _Enemies As New List(Of UnitBase)
    Public Property Enemies() As List(Of UnitBase)
        Get
            Return _Enemies
        End Get
        Set(ByVal value As List(Of UnitBase))
            _Enemies = value
        End Set
    End Property


AttackPriority、PowerPointについてはAttackPriorityを例にとると以下のように編集方法になります。

Public Overridable Property AttackPriority() As Integer = 10
  ↓
Private _AttackPriority As Integer = 10
    Public Overridable Property AttackPriority() As Integer
        Get
            Return _AttackPriority
        End Get
        Set(ByVal value As Integer)
            _AttackPriority = value
        End Set
    End Property

投稿者 GUPPY  (中学生) 投稿日時 2010/10/30 19:57:57
皆様の回答を参考にやってみたのですが
'System.InvalidCastException' の初回例外が Microsoft.VisualBasic.dll で発生しました。
'System.TypeInitializationException' の初回例外が StarAce.exe で発生しました。
と表示されてしまい、実行できませんでした。
どう回避したらよいのでしょうか。
投稿者 るきお(管理者)  (社会人) 投稿日時 2010/10/31 13:32:18
こんにちは。

スターエースのVB2008版をアップしました。
http://rucio.o.oo7.jp/Contents/Program/StarAce_VB2008.zip
GUPPYさんぜひ参考にしてください。

みなさんフォローありがとうございます。


ところで、VB2010 Expressってそんなにスペック要求高かったでしょうか?

VB2008 Express Editionの場合は

•最小 : 1.6 GHz の CPU、192 MB の RAM、解像度 1024x768 のディスプレイ、5400 RPM のハード ディスク 
•推奨 : 2.2 GHz 以上の CPU、384 MB 以上の RAM、1280 x 1024 を表示できるディスプレイ、7,200 RPM 以上のハード ディスク
•Windows Vista/Windows Server 2008 上で実行する場合 : 最小 2.4 GHz (P4クラス) の CPU、768 MB の RAM 
•完全インストールの場合は 1.3 GB のハード ディスク空き容量が必要 

出典
http://download.microsoft.com/download/1/b/e/1be78474-c7f8-427a-8c6c-330e1c5db7d5/Express2008SP1Readme.htm#Hardware Requirements

VB2010 Expressの場合の情報が見つからないです…。どなたかわかりますか?
投稿者 xvmm  (中学生) 投稿日時 2010/11/1 05:23:21
魔界の弁士さんの訂正です。
>Microsoft Visual Studio Solution File, Format Version 7.00 → VS.NET(2002)
>Microsoft Visual Studio Solution File, Format Version 8.00 → VS.NET2003
>Microsoft Visual Studio Solution File, Format Version 9.00 → VS2005
>Microsoft Visual Studio Solution File, Format Version 10.00→ VS2008
>Microsoft Visual Studio Solution File, Format Version 11.00→ VS2010
Microsoft Visual Studio Solution File, Format Version 7.0 → VS.NET2002
Microsoft Visual Studio Solution File, Format Version 7.1 → VS.NET2003
Microsoft Visual Studio Solution File, Format Version 8.0 → VS.NET2005
Microsoft Visual Studio Solution File, Format Version 9.0 → VS.NET2008
Microsoft Visual Studio Solution File, Format Version 10.0 → VS.NET2010

>Microsoft Visual Studio Solution File, Format Version 11.00
Visual Studio 11 は、将来のバージョン(2012あたり?)になります。
投稿者 パールマン  (社会人) 投稿日時 2010/11/1 05:36:15
パールマンです

xvmmさんが訂正を書き込まれていますが、
以降は、製品名に 『.NET』が付与されていないのです。
従いまして、魔界の弁士さんの書き込みが正解です。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/11/1 11:30:21
》 xvmm さん
> Visual Studio 11 は、将来のバージョン(2012あたり?)になります。
 
ソリューションファイルの先頭に書かれているバージョン番号は、
Visual Studio のバージョン番号とは異なります。

Visual Basic / Visual C++ / Visual Studio 混在で並べてみると:

    VS 97   (Ver. 5.0) の *.dsw には「Microsoft Developer Studio Workspace File, Format Version 5.00」
    VS 6.0  (Ver. 6.0) の *.dsw には「Microsoft Developer Studio Workspace File, Format Version 6.00」
VS.NET(2002)(Ver. 7.0) の *.sln には「Microsoft Visual Studio Solution File, Format Version 7.00」
VS.NET 2003 (Ver. 7.1) の *.sln には「Microsoft Visual Studio Solution File, Format Version 8.00」
    VS 2005 (Ver. 8.0) の *.sln には「Microsoft Visual Studio Solution File, Format Version 9.00」
    VS 2008 (Ver. 9.0) の *.sln には「Microsoft Visual Studio Solution File, Format Version 10.00」
    VS 2010 (Ver.10.0) の *.sln には「Microsoft Visual Studio Solution File, Format Version 11.00」


このほかにも幾つかのファイルに、上記に似たバージョン表記が埋め込まれています。

「# Microsoft Developer Studio Generated NMAKE File, Format Version 40001」… VC++4.0 の *.MAK
「# Microsoft Developer Studio Generated Build File, Format Version 6.00」 … VC++6.0 の *.DSP



ちなみに、*.sln のバージョン判定は、上記のバージョン表記だけではなく、先頭の空行や
「# Visual Studio 2008」などでも区別されています。そして VS2008 SP1 以降のバージョンでは、
この部分を読みとることで、エクスプローラ上での *.sln のアイコン表示を切り替えたりもしています。
投稿者 xvmm  (中学生) 投稿日時 2010/11/1 21:20:19
>以降は、製品名に 『.NET』が付与されていないのです。
すみません!!.NETをつけないことをすっかり忘れてしまっていました。

>Visual Studio のバージョン番号とは異なります。
そうだったんですか!!??
勉強不足でした。(ソリューションファイルを手動で編集したことがないので、いつもVB.NETに任せていました。)
勉強になりました。

お騒がせしました。すみません・・・。
投稿者 パールマン  (社会人) 投稿日時 2010/11/3 11:24:15
Visual Basic Express 2010 のスペック要求ですが、MSDNのフォーラムで質問しましたところ回答をいただきましたので、お知らせします。

回答は、MSDN(英語版)のページ。
仕様書の日本語版は無く、英語版のみとのことでした。

-----------------------
アーキテクチャ

   1. x86
   2. x64 (WOW)

OS環境

   1. Microsoft® Windows® XP (x86) Service Pack 3
      • All editions except Starter Edition
   2. Microsoft® Windows® Vista (x86 & x64) with Service Pack 2
      • All editions except Starter Edition
   3. Microsoft® Windows® Server 2003 (x86 & x64) Service Pack 2
      • All editions (install MSXML6 if it is not already present)
   4. Microsoft® Windows® Server 2003 R2 (x86 & x64)
      • All editions
   5. Microsof® Windows® Server 2008 (x86 & x64) with Service Pack 2
      • All editions
   6. Microsoft® Windows® Server 2008 R2 (x64)
      • All editions
   7. Microsoft® Windows® 7
      • All editions

ハードウェア用件

   1. 1.6 GHz or faster processor
   2. 1024 MB RAM (1.5 GB if running on a virtual machine)
   3. 3 GB of available hard-disk space
   4. 5400 RPM hard-disk drive
   5. DirectX 9-capable video card running at 1024 x 768 or higher display resolution
   6. DVD-ROM drive
---------------------------
※ 項目のみ訳しました。

出典:http://www.microsoft.com/express/Support/

実装メモリの要求が大きいですね。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/11/3 14:44:57
> ハードウェア用件
ハードウェア要件は、Express でも上位エディションでも一緒のようですね。
http://www.microsoft.com/japan/visualstudio/products/2010-editions/professional
http://www.microsoft.com/japan/visualstudio/products/2010-editions/premium
http://www.microsoft.com/japan/visualstudio/products/2010-editions/ultimate

XP については、x86 SP3 以降に加えて x64 SP2 以降も使えるようですが、
公式資料を見る限りでは、XP x64 に関する記載は見当たりませんね。
http://www.forest.impress.co.jp/docs/news/20100428_364484.html
http://www.biccamera.com/bicbic/jsp/w/catalog/detail.jsp?JAN_CODE=4988648713475


> MSDNのフォーラムで質問しましたところ回答をいただきましたので
下記のスレッドですね。
http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/7f507c2e-1b3c-4d35-8f1e-ece93f754a76