現在は、「Visual Studio .NET 2003」を利用しています。
開発に当たっての疑問をご相談させてください。
作成したEXEを配布して利用してもうらう為には、.NETFrameworkが必要だと思いますが、そのバージョンを意識して開発をするものなのでしょうか?
今まで、「.NETFramework 1.1」だけを考えてインストールをお願いしてきましたが、最近、
「.NETFramework 2.0」が既にインストールされていることがあります。
そのバージョンでも動作に問題なさそうなのですが、
「次は、2.0用で開発して欲しい」と頼まれました。
ここで質問なのですが、「Visual Studio .NET 2003」には、「.NETFramework」のバージョンを設定する箇所があるのでしょうか?
見つかりませんが、あるはずと言われました。
このあたりの参考になるサイトや書籍が見つかりません。
ご教示、よろしくお願い致します。
> 「次は、2.0用で開発して欲しい」と頼まれました。
VS2003 で、.NET 2.0 対応アプリを作る事はできません。
.NET 2.0 対応アプリを作るには、VS2005 を使ってください。
(ちなみに、VS2008 は .NET 3.5 対応です)
なお、VS2005 で作成できるプロジェクトは、2.0 をサポートするプロジェクトだけです。
http://msdn2.microsoft.com/ja-jp/library/ms246609%28VS.80%29.aspx
また、名前空間が変更されたり(Microsoft.Data.Odbc→System.Data.ODbc)、
廃止されたクラスやメソッドなどもありますので、ご注意ください。
http://www.microsoft.com/japan/msdn/netframework/changeinfo/
> 「Visual Studio .NET 2003」には、「.NETFramework」のバージョンを設定する箇所があるのでしょうか?
ありますよ。
プロジェクトのプロパティ画面を開き、[共通プロパティ]の[ビルド]を選択すると、
『サポートされているランタイム』という項目が見つかるかと思います。
規定値の「.NET 1.1 対応」の他に、「1.0 対応」「1.0/1.1両対応」が選択可能です。
(さすがに、2.0 対応という選択肢は無いですけど)
魔界の仮面弁士さま
アドバイス有難う御座います。
>VS2003 で、.NET 2.0 対応アプリを作る事はできません。
やはりそうなんですね。ここは納得です。
プロパティの選択箇所も確認できました。有難う御座います。
再度、お伺いさせてください。
では、どうして2.0だけがインストールしている環境で
2003で開発したEXEが動作できるのでしょうか。サポートはしていないけど、動くから?でしょうか。
また、
1.1をインストールしないと、プロジェクトが開けなかったので追加インストールを実行しましたら、
ⅡSサービスとの互換性の表示があり、コマンド入力を指示されました。
実行後、問題なく開けましたが、これで共存できるようになったのでしょうか?
今悩んでいるのは、「2003で開発したEXEを、.NETFramework1.1/2.0 環境兼用で配布したい」というところなのです。
2005を用意することはできますが、2つ作成するのには時間がないのです。
アドバイス頂けますと、助かります。
宜しくお願い致します。
> では、どうして2.0だけがインストールしている環境で
C:\WINDOWS\Microsoft.NET\Framework\ の下に、
v1.1.4322 はあるけれど、v2.0.50727 が無い状態なのでしょうか?
> 2003で開発したEXEが動作できるのでしょうか。
あれ、そうでしたっけ…? 下記には、
『.NET Framework Version 2.0 で作成されたアプリケーションは
.NET Framework Version 2.0 でのみ動作します。
.NET Framework Version 2.0 で作成されたアプリケーションは、
Version 1.1 以前では動作しません。』
と書かれているのですけれども。
http://msdn2.microsoft.com/ja-jp/library/s80xxs7s%28VS.80%29.aspx
> ⅡSサービスとの互換性の表示があり、
ⅡS ではなく、IIS (インターネット インフォーメーション サービス)です。
> 2003で開発したEXEを、.NETFramework1.1/2.0 環境兼用で配布したい
環境の混在は問題ありません。
「1.1 と 2.0 の両方がインストールされている環境」で実行した場合、
2003 製 EXE は 1.1 のランタイムを使って動作し、
2005 製 EXE は 2.0 のランタイムを使って動作します。
魔界の仮面弁士さま
IISでした。未熟者で申し訳ありません。読み方すら分からずでした。
>C:\WINDOWS\Microsoft.NET\Framework\ の下に、
>v1.1.4322 はあるけれど、v2.0.50727 が無い状態なのでしょうか?
今はあります。恐らく、先程1.1をインストールしたからでしょうか。
ということは、他のPCに「v1.1.4322 」は無いのかもしれません。
(ここには、v1.0.3705もあります)
>『.NET Framework Version 2.0 で作成されたアプリケーションは
> .NET Framework Version 2.0 でのみ動作します。
> .NET Framework Version 2.0 で作成されたアプリケーションは、
> Version 1.1 以前では動作しません。』
>と書かれているのですけれども。
ご掲示頂きましたサイトを拝見しました。
多分、2003で1.1対応で開発したEXEを、2.0環境で実行したから動作できたのでは?と。
別のところで発見しましたが、一度2005で開いてしまうと、2003では編集できなくなるそうです。気をつけなければいけませんね。
つまり、
1.1のみの環境で実行するなら、2005で2.0対応の開発EXEは配布できないということで、
2.0のみの環境で実行するなら、2003で1.1対応の開発EXEも動作できるということでしょうか。。。
それなら、1.1対応で開発すれば、どちらでもOK?と解釈しても宜しい気がしますが、そういうことになりますか?
今一番気になっている点です。それなら1つのEXEで全員に渡せるので。
共存する環境もあり、それに対しては「環境の混在は問題ありません。」で安心しました。有難う御座います。
無料でダウンロードできる2005を見つけました。検討中です。
>>> 2003で開発したEXEが動作できるのでしょうか。
>> あれ、そうでしたっけ…? 下記には、
>> 『.NET Framework Version 2.0 で作成されたアプリケーションは
>> .NET Framework Version 2.0 でのみ動作します。
>> .NET Framework Version 2.0 で作成されたアプリケーションは、
>> Version 1.1 以前では動作しません。』
えーっと,
http://msdn2.microsoft.com/ja-jp/library/w671swch(VS.80).aspx
とか
http://msdn2.microsoft.com/ja-jp/library/9w519wzk(VS.80).aspx
の方が適切かと。VS 2003で開発した場合,supportedRuntimeを構成ファイルで指定しなかった場合,
・1.1
・1.1以降の最新の.NET Framework
という順序で使用される.NET Frameworkのバージョンが決定します。
なので,「VS 2003でコンパイルされたEXE」は2.0上でも (一応) 動作します。
>>>> 『サポートされているランタイム』という項目が見つかるかと思います。
これも,supportedRuntimeだったかrequiredRuntimeだったかを指定するだけです。
VS2008の様に,言語要素や使える内容まで調べることはないです。
> それなら、1.1対応で開発すれば、どちらでもOK?と解釈しても宜しい気がしますが、そういうことになりますか?
一応は。ただし,MSも完全に互換があるとは謳っていないはずです。
魔界の仮面弁士さんがURLを書かれていましたが,非互換の部分も存在するため,結局はテストする必要があります。
魔界の仮面弁士さま YuOさま
お蔭様で理解できました。対策できそうです。
分かりやすいご指導、有難う御座いました。
今後ともよろしくお願い致します。
失礼しました。解決です。
有難う御座いました。
ツイート | ![]() |