.NET Framework バージョンの指定
アプリケーション構成ファイルを使用して、アプリケーションまたはコンポーネントがサポートする .NET Framework のバージョンを指定することができます。アプリケーション構成ファイルで <supportedRuntime> 要素と <requiredRuntime> 要素を使用する場合は、サポートされる各 .NET Framework バージョンのバージョン番号とビルド番号を指定する必要があります。
アプリケーションで使用できる .NET Framework バージョンを指定するための構成規則は、.NET Framework Version 1.1 に対して特に厳しくなっています。.NET Framework Version 1.0 を使用するアプリケーションの場合、構成ファイルの指定内容に関係なく、そのアプリケーションは .NET Framework Version 1.0 で実行されます。.NET Framework Version 1.1 を使用するアプリケーションの場合、<supportedRuntime> 要素を使用して、アプリケーションでサポートされるランタイムのバージョンを指定する必要があります。.NET Framework Version 1.0 で作成されたアプリケーションは、既定では、自動的に .NET Framework Version 1.1 で実行されます。
メモ アプリケーション構成ファイルは、アプリケーションと同じ名前にして、拡張子 .config を付ける必要があります。たとえば、アプリケーションが myExecutable.exe という名前であれば、アプリケーション構成ファイルの名前は myExecutable.exe.config にする必要があります。
現在では、アプリケーションを実行するターゲットとして .NET Framework Version 1.0 と .NET Framework Version バージョン 1.1 のいずれか、または両方を指定できます。
.NET Framework Version 1.1 の指定
このセクションで示すアプリケーション構成ファイルによって、.NET Framework Version 1.0 を使用して作成されたアプリケーションが、次の場合に .NET Framework Version 1.1 を使用します。
- .NET Framework Version 1.1 がインストールされている場合
- .NET Framework Version 1.0 と .NET Framework Version 1.1 の両方がインストールされている場合
バージョン 1.0 だけがインストールされている場合、バージョン 1.0 では <supportedRuntime> 要素が認識されず、バージョン 1.0 を示す PE ファイル ヘッダーのバージョンが使用されるため、アプリケーションは実行されます。
次の図では、MyApp とアセンブリ A には .NET Framework Version 1.0 への静的参照があり、アセンブリ B には .NET Framework Version 1.1 への静的参照があります。この例では、MyApp のアプリケーション構成ファイルで Version 1.1 をサポートするように指定されているので、アプリケーションとアセンブリ A は .NET Framework Version 1.1 を使用するようにリダイレクトされます。
アセンブリ バインディングを Version 1.1 にリダイレクトするアプリケーション構成ファイル
.NET Framework Version 1.1 を使用して作成されたアプリケーションを .NET Framework Version 1.0 で実行するように指定するには
アプリケーション構成ファイルに次の XML を入力します。
<?xml version ="1.0"?> <configuration> <startup> <supportedRuntime version="v1.1.4322" /> </startup> </configuration>
.NET Framework Version 1.0 の指定
.NET Framework Version 1.1 を使用して作成されたアプリケーションを .NET Framework Version 1.0 で実行するように指定するには、アプリケーション構成ファイルに大量のエントリが必要です。.NET Framework を構成する各アセンブリを .NET Framework Version 1.0 にリダイレクトする必要があるからです。
このセクションで示すアプリケーション構成ファイルによって、次の場合に、アプリケーションは .NET Framework Version 1.0 を使用します。
- .NET Framework Version 1.0 がインストールされている場合
- .NET Framework Version 1.0 と .NET Framework Version 1.1 の両方がインストールされている場合
.NET Framework Version 1.1 だけがインストールされている場合は、アプリケーションは実行されません。
次の図では、MyApp とアセンブリ A には .NET Framework Version 1.0 への静的参照があり、アセンブリ B には .NET Framework Version 1.1 への静的参照があります。この例では、MyApp のアプリケーション構成ファイルで Version 1.0 をサポートするように指定されているので、アセンブリ B は .NET Framework Version 1.0 を使用するようにリダイレクトされます。
アセンブリ バインディングを Version 1.0 にリダイレクトするアプリケーション構成ファイル
.NET Framework Version 1.1 を使用して作成されたアプリケーションを .NET Framework Version 1.0 で実行するように指定するには
アプリケーション構成ファイルに次の XML を入力します。
<?xml version ="1.0"?> <configuration> <startup> <requiredRuntime version="v1.0.3705" /> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705"> <dependentAssembly> <assemblyIdentity name="Regcode" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.EnterpriseServices" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Security" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="CustomMarshalers" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Accessibility" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Configuration.Install" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.DirectoryServices" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Drawing.Design" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.ServiceProcess" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.RegularExpressions" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Services" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Windows.Forms" publicKeyToken="b77a5c561934e089" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Xml" publicKeyToken="b77a5c561934e089" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Data" publicKeyToken="b77a5c561934e089" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Design" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Drawing" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System" publicKeyToken="b77a5c561934e089" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Messaging" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="IEExecRemote" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="IEHost" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="IIEHost" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="ISymWrapper" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="mscorcfg" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Management" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Runtime.Remoting" publicKeyToken="b77a5c561934e089" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Runtime.Serialization.Formatters.Soap" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mobile" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Vsa.Vb.CodeDOMProcessor" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="7.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft_VsaVb" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="7.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Vsa" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="7.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.VisualBasic.Vsa" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="7.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="cscompmgd" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="7.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.JScript" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="7.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.VisualBasic" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="7.0.3300.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.VisualC" publicKeyToken="b03f5f7f11d50a3a" culture=""/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="7.0.3300.0"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
参照
side-by-side 実行の使用 | アセンブリ バインディングのリダイレクトの構成 | ランタイム バージョン情報の検索