none
.NET Framework の版数 RRS feed

  • 質問

  • Windows XP Pro(SP2) 上でVS2005(VB)での開発を行っております。

    開発プログラムの現時点での動作環境はWindows XP/Vista/7 です。
    (可能であれば以降のOSにも対応させたい)

    またビルド機にインストールされている.NET Framework は1.0/1.1/2.0/3.0/3.5 です。

    テスト環境としてWindows XP Home(SP3) を用意し、.NET Framework の版数について確認したところ、

    ・1.0/1.1       : エラー(To run this application, you first must install one of the following version of the .NET Framework: v2.0.50727
                   Contact your application publisher for instructions about obtaining the appropriate version of the .NET Framework. )
    ・1.0/1.1/2.0    : 正常動作
    ・1.0/1.1/2.0/4.0 : 正常動作
    ・1.0/1.1/4.0    : エラー(Unable to find a version of the runtime to run this application.)

    つまり 「2.0 があれば動作するが、それ以外の版数では動作しない」状況です。

    2.0 でも 4.0 でも動作するようなビルド方法はないでしょうか?

    2010年8月5日 5:21

回答

  • 1.0/1.1 と 2.0 ではランタイムが違います。同様に、2.0 と 4.0 も違います。なので、4.0 向けにビルドする必要があります。

    Visual Studio 2005 では .NET Framework 4.0 向けのビルドはできないので、Visual Studio 2010 でビルドすることになります。

    Visual Studio 2010 を買うのが一番いいのですが、お金の問題もあるでしょう。Visual Studio 2010 には無料の Express Edition があるので、ライセンスが問題なければ、それを利用してビルドできます。Express Edition のライセンスに違反しそうなら、MSBuild を使うのが最終手段です。

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答の候補に設定 山本春海 2010年8月18日 6:34
    • 回答としてマーク 山本春海 2010年8月31日 0:42
    2010年8月5日 5:49
  • app.config の中身はどのようになっていますか?
    useLegacyV2RuntimeActivationPolicy とか supportedRuntime を適切に設定すれば、大丈夫なのではないかと思うのですが。

     <startup> 要素
     http://msdn.microsoft.com/ja-jp/library/bbx34a2h.aspx
    • 回答の候補に設定 山本春海 2010年8月18日 6:35
    • 回答としてマーク 山本春海 2010年8月31日 0:42
    2010年8月5日 5:49
  • 簡単にいえば、Visual Studio 2005で作成できるプログラムが使っている.NET Frameworkは.NET Framework 2.0です。

    よって、「2.0 があれば動作するが、それ以外の版数では動作しない」は正しい状況です。

    そして、.NET Framework 4のみしか入れていないと.NET Framework 2.0をターゲットフレームワークとしたアプリが動かないのも仕様です。一応↓の最後の回答で回避方法がかかれているようですが未確認です。

    https://connect.microsoft.com/VisualStudioJapan/feedback/details/499298/net-framework-4-0-beta2-clr1-1-clr2-0?wa=wsignin1.0

     

     


    http://blogs.wankuma.com/hatsune/
    • 回答の候補に設定 山本春海 2010年8月18日 6:35
    • 回答としてマーク 山本春海 2010年8月31日 0:42
    2010年8月5日 5:51
  • MSDN にも同様のことが書かれています。
    シナリオ 2 あたりをご参照ください。
    http://msdn.microsoft.com/ja-jp/library/ee518876.aspx


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答の候補に設定 山本春海 2010年8月18日 6:35
    • 回答としてマーク 山本春海 2010年8月31日 0:43
    2010年8月5日 14:05
    モデレータ

すべての返信

  • 1.0/1.1 と 2.0 ではランタイムが違います。同様に、2.0 と 4.0 も違います。なので、4.0 向けにビルドする必要があります。

    Visual Studio 2005 では .NET Framework 4.0 向けのビルドはできないので、Visual Studio 2010 でビルドすることになります。

    Visual Studio 2010 を買うのが一番いいのですが、お金の問題もあるでしょう。Visual Studio 2010 には無料の Express Edition があるので、ライセンスが問題なければ、それを利用してビルドできます。Express Edition のライセンスに違反しそうなら、MSBuild を使うのが最終手段です。

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答の候補に設定 山本春海 2010年8月18日 6:34
    • 回答としてマーク 山本春海 2010年8月31日 0:42
    2010年8月5日 5:49
  • app.config の中身はどのようになっていますか?
    useLegacyV2RuntimeActivationPolicy とか supportedRuntime を適切に設定すれば、大丈夫なのではないかと思うのですが。

     <startup> 要素
     http://msdn.microsoft.com/ja-jp/library/bbx34a2h.aspx
    • 回答の候補に設定 山本春海 2010年8月18日 6:35
    • 回答としてマーク 山本春海 2010年8月31日 0:42
    2010年8月5日 5:49
  • 簡単にいえば、Visual Studio 2005で作成できるプログラムが使っている.NET Frameworkは.NET Framework 2.0です。

    よって、「2.0 があれば動作するが、それ以外の版数では動作しない」は正しい状況です。

    そして、.NET Framework 4のみしか入れていないと.NET Framework 2.0をターゲットフレームワークとしたアプリが動かないのも仕様です。一応↓の最後の回答で回避方法がかかれているようですが未確認です。

    https://connect.microsoft.com/VisualStudioJapan/feedback/details/499298/net-framework-4-0-beta2-clr1-1-clr2-0?wa=wsignin1.0

     

     


    http://blogs.wankuma.com/hatsune/
    • 回答の候補に設定 山本春海 2010年8月18日 6:35
    • 回答としてマーク 山本春海 2010年8月31日 0:42
    2010年8月5日 5:51
  • MSDN にも同様のことが書かれています。
    シナリオ 2 あたりをご参照ください。
    http://msdn.microsoft.com/ja-jp/library/ee518876.aspx


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答の候補に設定 山本春海 2010年8月18日 6:35
    • 回答としてマーク 山本春海 2010年8月31日 0:43
    2010年8月5日 14:05
    モデレータ