Visual StudioにてC#でのソフト作成について調べています。
C#は.NET Frameworks上にて動作するソフトを作成することになる、という認識です。
.NET FrameworkはOSに標準的に用意されているものは、Win7とWin8.1で異なるそうですね。
自分で確認したところ
- Win7: .NET Framework v3.5.1
- Win8: .NET Framework v4.5 ( 但し、.NET Framework v3.5も有効にできる?)
質問は
Q1. v3.5とv.4.5同時対応のソフトは作成できるのでしょうか? (v3.5用がv4.5で動けるでしょうか?)
Q2. Win8にてv4.5とv3.5を両方有効にして、v3.5のソフトをインストールするのは問題あるでしょうか? (他のソフトでv4.5と使っている場合の対応)
No.1ベストアンサー
- 回答日時:
もしかするとすでに参照されたかもしれませんが、以下のページが.NET Frameworkバージョン間および各OSバージョンとの関係について、とても参考になります。
http://www.atmarkit.co.jp/ait/articles/1211/16/n …
順番が前後しますが、まず Q2 について。
上記URLのページ内「.NET Framework の各バージョン同士の関係」節にも記載がありますが、(2.0~3.5の間を除いて)各Frameworkは別物扱いになります。
そのため、Windows8に3.5をインストールして、3.5と4.5の共存状態にすることはまったく問題ありません。
「Side-by-Sideアセンブリ」で検索してもらうとわかりますが、同じクラスなど(アセンブリ)でもバージョン毎に管理する仕組みが存在します。
そして Q1 について。
上記のように別物扱いのため、開発の際にターゲットにしたバージョンのFramework上で動作させるのが基本になります。
ただし、アプリケーションの構成ファイル(configファイル)内で明示的に指定を行うことで、より新しいバージョンのFramework上で実行させることは一応可能です。(3.5向けにビルドしたものを4.5上で動かすなど)
以下のURLのページを参照ください。
http://msdn.microsoft.com/ja-jp/library/vstudio/ …
ただし、同じクラスが各バージョンのFrameworkに存在するといっても全くの同一コードというわけではないので、古いバージョン向けのアプリが必ずしも新しいバージョンで動作するとは限りません。
(新しいバージョンでメソッドが追加されたクラスなどは内部構造も変化しているでしょうし、MSDNのクラスの説明を見ているとthrowされる例外の種類が増えているメソッドなどもたまに見ます)
上記のURLのページでも触れられていますが、もし別バージョンのFramework上で動かすのであれば、各バージョン毎にそれぞれテストは行う必要があると思います。
詳細な回答ありがとうございます。
リンク先参考になります。
3.5と4.5向けはソース自体が異なるのですね。いろいろ面倒なのですね。
複数OSへの対応を実際の開発者がどのようにやっているのか調べていこうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
- その他(コンピューター・テクノロジー) .NET Frameworkがコントロールパネル>プログラムと機能に表示されない。 3 2022/12/31 15:33
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- C言語・C++・C# 「using Windows」でエラーが出る 3 2022/12/23 19:53
- ノートパソコン Win10 EXCEL でのエラー 2 2022/04/03 15:57
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- デスクトップパソコン NVIDIA Quadro K2000とNVIDIA Quadro K420どちらが優れていますか? 6 2023/02/28 18:16
- その他(開発・運用・管理) Arduinoのキー送信は.netのSendKeys.Sendと同じ?? 1 2022/04/23 01:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
gitでバージョン指定してダウン...
-
Visual Basicでタイピングゲー...
-
Blenderについて
-
Eclipse3.5.1のJUnitぼバージョ...
-
UWSCが、動作環境の違いで動か...
-
vba クリップボードクリアにつ...
-
[VB.2005]クライアントからWEB...
-
プログラミング開発経験とは?
-
サーブレットで電卓をつくる
-
PythonやJavaScriptのように実...
-
まったくの素人にわかりやすい...
-
Javaにてシリアル通信を行って...
-
MSFormsとは何ですか?
-
txt2assのダウンロードができない
-
2ショットチャットができるHP...
-
この便利な時代に開発環境すら...
-
JAVA GUIをデザイン性のあるも...
-
サイドワインダーのドライバ
-
Javaプログラミングをやってます。
-
東方星蓮船体験版のダウンロー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gitでバージョン指定してダウン...
-
使用しているJUnitのバージョン...
-
CrystalReportsのバージョン確...
-
EclipseでJavaコンパイラのバー...
-
visual stadio 参照問題
-
バイナリファイルの著作権など...
-
VMwareの古いバージョンがダウ...
-
VBAでDVDのトレイを開く。、
-
Selenium/VBA/Chrome エラーで...
-
【javaコンパイル時のエラーに...
-
MSCOMCTL.OCXのアップデートの方法
-
Javaのバージョンアップにとも...
-
chromedriverのDLについて
-
JRE 1.5.0.14のダウンロード先...
-
gridviewでの高さの取得方法
-
C# Excelを遅延バインディング...
-
Tmocatのバージョン
-
Flashplayerの運用について
-
エクセルVBAがMACで動かない
-
reactを利用できるnode.jsのバ...
おすすめ情報