2011-09-06 21 views
6

ここは興味深いものです。私は、.NET 2.0に対して構築された小さな実行可能ファイルを用意しており、さまざまなプラットフォームで動作するようにしています。これは1つのアセンブリプログラムであり、System。*名前空間のみを参照します。1つのアプリケーションで.NET 2.0と.NET 4.0をサポートするにはどうすればよいですか?

.NET 2.0をインストールしたOSで実行すると、正常に動作します。 .NET 4.0で導入された新しいランタイムにより、 .NET 4.0のみがインストールされたOSでは実行されません。その結果、hereのように、サポートされているランタイム情報をapp.configファイルに追加しました。私は2つのサポートランタイムを追加しました:今

<supportedRuntime version="2.0.50727" /> 
<supportedRuntime version="4.0" /> 

私は.NET Framework 2.0がインストールして、システム上のアプリケーションを実行すると、をそれはを実行に失敗:

enter image description here

それはで違いはありませんサポートされているランタイムが定義されている場合は、app.configへの変更を反映するようにエラーメッセージ内の要求されたバージョンの順序を変更しないでください(CLRは明らかにその情報を適切に取得しています)。 .NET 2.0がインストールされており、.NET 2.0をインストールする必要があると主張しています。私は幸運で.NET 2.0のインストールを修復しようとしました。私は2番目のマシンでこの動作を再現しました。

これが失敗する原因は何ですか?

答えて

11

私はあなただけvを逃したかもしれないと考えている:

<supportedRuntime version="v2.0.50727" /> 
<supportedRuntime version="v4.0" /> 
関連する問題