どっとねっとふぁん

C# Tips And Samples
in 検索

19.Ver1.0とVer1.1の共存を確認する

最新の投稿は、投稿日時: 06-22-2005, 4:20 午後 投稿者: ono です。スレッドには 0 件の返答があります。
投稿のソート: 前へ 次へ
  •  06-22-2005, 4:20 午後 28

    19.Ver1.0とVer1.1の共存を確認する

    2003年4月25日の時点で.NET Framework SDK日本語版のVer1.1はまだダウンロードできませんが、Windows UpdateでVer1.1のランタイムをインストールすることが可能です。
    Ver1.1はC:\WINDOWS\Microsoft.NET\Framework\v1.1.4322フォルダにインストールされます。
    このフォルダにはcsc.exeもインストールされていますので、これを使ってVer1.1用のコンパイルを実行することが可能です。

    今回は実行中のランタイムバージョンを表示させるサンプルプログラムを使って、Ver1.0とVer1.1が本当に1台のPC上に共存できることを確認してみます。
    -------------------------------------------------------
    using System;
    
    public class Sample {
    
        public static void Main() {
            Console.WriteLine(System.Environment.Version.ToString());
        }
    }
    
    -------------------------------------------------------
    サンプルはたったこれだけ(^^;
    これをsample.csというファイル名で保存します。

    まず、Ver1.0のコンパイラを利用してコンパイルしてみます。
    > C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\csc /out:sample1.exe sample.cs
    
    sample1.exeを実行すると、"1.0.3705.288"とVer1.0のCLRのバージョンが表示されます。

    次にVer1.1のコンパイラを利用してコンパイルしてみましょう。
    > C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc /out:sample2.exe sample.cs
    
    sample2.exeを実行すると、"1.1.4322.573"とVer1.1のCLRのバージョンが表示されます。
    これで以下のことがわかります。
    • 1台のPC上にVer1.0とVer1.1が共存することが可能である
    • アセンブリは自分がコンパイルされたバージョンを覚えていて、そのバージョンのCLRを自動的に利用する
    これで再コンパイルすればVer1.0で作成したアプリケーションがVer1.1上でも動作することがわかりましたが、再コンパイルせずに実行するランタイムを変更することは可能でしょうか。

    実は、構成ファイルを利用することで実現できます。
    -------------------------------------------------------
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
       <startup>
          <requiredRuntime version="v1.1.4322" safemode="true"/>
       </startup>
    </configuration>
    
    -------------------------------------------------------
    上記の内容をsample1.exe.configというファイル名でsample1.exeと同じフォルダに保存し、sample1.exeを実行してみます。
    こんどは"1.1.4322.573"とVer1.1のCLRのバージョンが表示されるはずです。


    あおい情報システム株式会社
     小野修司(どっとねっとふぁん)
RSS ニュースフィードで参照
SkinName:iroha_CS2
Powered by Community Server, by Telligent Systems