none
Windows8でのNet Framework3.5の使用について RRS feed

  • 質問

  • 3年ほど前にNet Framework3.5で開発したソフトをWindows8のPCにインストールしたところ、そのまま動作しました。
    Net Framework3.5はCD-ROM内に用意されているのですが、インストールされませんでした。
    これは最初からWindoes8にインストールされていたNet Framework3.5で動作しているということでしょうか。
    (Windows8リリース前の記事に、Net Framework3.5は予めインストールされているけれど、アクティベートしないと動作しないと書かれていましたので混乱しています)それともNet Framework4.5で動作しているのでしょうか。
    2012年12月2日 15:51

回答

  • .NET 4 系で .NET 2.0-3.5 アプリを動かすためには構成ファイルにその旨書く必要があるはずです。
    (掲示のリンク先は 1.0/1.1/2.0 の間の話で、最新に合わせて記載が見直されていないのでややこしいのですが…)

    方法 : .NET Framework 4 または 4.5 をサポートするアプリケーションを構成する
    http://msdn.microsoft.com/ja-jp/library/jj152935.aspx

    ここの表によると、.NET 3.5 アプリに指定を特に書かずに、4 or 4.5 だけの環境ではエラーと書かれています。
    2012年12月3日 13:35
    モデレータ
  • MSDN にはこのように記載されています。
    http://msdn.microsoft.com/ja-jp/library/vstudio/hh506443.aspx

    何もインストールせずに使えたと言うことは、事前にインストールしてあったということでしょう。
    それが、Windows 8 をアップグレードインストールしたからなのか、プリインストール品の都合で設定されていたのか、他のソフトウェアでインストール済みだったのかはわかりませんが。

    一例として問題なく動いたからといって、すべてが万事うまくいくわけではありません。
    検証される際はクリーンインストールした環境を用いるべきでしょう。

    • 回答としてマーク osakaondai 2012年12月5日 0:30
    2012年12月2日 16:01
    モデレータ
  • Azuleanさんが回答されたようにもしかすると3.5がインストールされていたのかもしれませんが、別の可能性も挙げておきます。

    方法 : アプリケーション構成ファイルを使用して対象とする .NET Framework のバージョンを指定するには、アプリケーションが実行に使用するランタイムバージョンの決定方法が記述されています。これの2番目

    アプリケーションがビルドされた .NET Framework のバージョンがなく、構成ファイルの <supportedRuntime> 要素にバージョンが指定されていない場合、アプリケーションはコンピューターにある .NET Framework の最新バージョンで実行されます。

    に該当したのかもしれません。この場合、3.5で作られていてもWindows 8に既定でインストールされている4.5を使用することになります。

    • 回答としてマーク osakaondai 2012年12月5日 0:30
    2012年12月2日 22:22
  • さすがにドキュメントが間違っていることまではわかりませんでした。何のために4.5のページで確認したのやら…。
    • 回答としてマーク osakaondai 2012年12月5日 0:30
    2012年12月3日 13:49

すべての返信

  • MSDN にはこのように記載されています。
    http://msdn.microsoft.com/ja-jp/library/vstudio/hh506443.aspx

    何もインストールせずに使えたと言うことは、事前にインストールしてあったということでしょう。
    それが、Windows 8 をアップグレードインストールしたからなのか、プリインストール品の都合で設定されていたのか、他のソフトウェアでインストール済みだったのかはわかりませんが。

    一例として問題なく動いたからといって、すべてが万事うまくいくわけではありません。
    検証される際はクリーンインストールした環境を用いるべきでしょう。

    • 回答としてマーク osakaondai 2012年12月5日 0:30
    2012年12月2日 16:01
    モデレータ
  • Azuleanさんが回答されたようにもしかすると3.5がインストールされていたのかもしれませんが、別の可能性も挙げておきます。

    方法 : アプリケーション構成ファイルを使用して対象とする .NET Framework のバージョンを指定するには、アプリケーションが実行に使用するランタイムバージョンの決定方法が記述されています。これの2番目

    アプリケーションがビルドされた .NET Framework のバージョンがなく、構成ファイルの <supportedRuntime> 要素にバージョンが指定されていない場合、アプリケーションはコンピューターにある .NET Framework の最新バージョンで実行されます。

    に該当したのかもしれません。この場合、3.5で作られていてもWindows 8に既定でインストールされている4.5を使用することになります。

    • 回答としてマーク osakaondai 2012年12月5日 0:30
    2012年12月2日 22:22
  • .NET 4 系で .NET 2.0-3.5 アプリを動かすためには構成ファイルにその旨書く必要があるはずです。
    (掲示のリンク先は 1.0/1.1/2.0 の間の話で、最新に合わせて記載が見直されていないのでややこしいのですが…)

    方法 : .NET Framework 4 または 4.5 をサポートするアプリケーションを構成する
    http://msdn.microsoft.com/ja-jp/library/jj152935.aspx

    ここの表によると、.NET 3.5 アプリに指定を特に書かずに、4 or 4.5 だけの環境ではエラーと書かれています。
    2012年12月3日 13:35
    モデレータ
  • さすがにドキュメントが間違っていることまではわかりませんでした。何のために4.5のページで確認したのやら…。
    • 回答としてマーク osakaondai 2012年12月5日 0:30
    2012年12月3日 13:49
  • Azuleanさん、佐祐理さんご回答ありがとうございました。

    最初にテストしたのは、新品のメーカー製のPCでした。ご指摘の通り、出荷時設定が特殊だったかもしれませんので、今回自作PCにWindows8をクリーンインストールしてテストしてみました。すると、Net Frameworkは4.5しか入っていませんでした。そして問題の当社ソフトをインストールしてみると、Net Framework3.5はインターネット経由でダウンロードさせられました。CD-ROM内のNet Framework3.5は古くてWindows8には使えないということのようです。以上が、現実のようです。

    2012年12月5日 0:43