2011-01-10 3 views
3

私はC#.NET 2.0でフレームワーク3.0と3.5でもうまく動作するプログラムを作成しました。.Net '任意のフレームワーク'の設定

.NET Framework 4.0がインストールされている唯一のフレームワークで、動作しない場合は、2.0をインストールする必要があります。 Googleでは、次のような構成見つから

:はapp.configにこれを追加した後

<startup> 
    <requiredRuntime safemode="true" imageVersion="v4.0.30319" version="v4.0.30319"/> 
</startup> 

を、私のプログラムは、何の問題もなく、.NET Frameworkの4.0で動作します!

私が探しているのは、インストールされている場合は.NET 2.0、または.NET 4.0の場合は私のプログラムを実行する.NET 'Any Framework'の設定です。

これを行う方法?

+0

私はこれが* 2なしで可能であるかわからない*異なる(1 .NET2、1 .NET4)を構築します。 .NET2は、.NET2/3/3.5とは異なるランタイム/コアを使用します(たとえば、新しい.NET APIの問題だけではありません)。これまでに聞いたことのないCLR2 *または* CLR4を必要とする魔法のオプションがない限りプロキシー実行可能ファイルを使って最高の/唯一のCLRをロードし、次にイメージをロードするというようなもっと恐ろしい方法があるかもしれません。私は知らない:-) –

答えて

2

見つけた!ここで

は、それを必要とするすべての人のための設定です:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v2.0.50727"/> 
    <supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0,Profile=Client" /> 
    </startup> 
</configuration> 
+0

それでも動作しない場合は、必ずAppName.exeをバンドルしてください。あなたがそれを配布するときあなたのアプリ(すなわち、同じフォルダに持っている)で設定してください。私はconfigが.exeに組み込まれていると思ったが、そうはしない。 – blade

+0

これに関する詳しい情報はこちら:http://www.codeproject.com/Articles/886256/NET-versioning-and-multi-targeting-on-Csharp-appli –

0

アプリケーションの最小要件を変更する必要があるもの。

は2.0にターゲットフレームワークを変更設定するプロジェクトに行くと、私の事は、それは同じであっても、ユーザーをプレイ。これは、設計によって設定ないと動作しません。自分のシステム

3

で2.0または4.0ネットフレームワークを持っています。 .NET 4は異なるランタイムを使用し、.NET 2アセンブリをロードすると、デフォルトではCLRのバージョン2でロードされます。この動作を防ぐために再構成して、CLRのv4にロードすることはできますが、必ずしも良い考えではありません。それは、あなたが書いたコードを、それが設計され、テストされたフレームワークとは異なるフレームワーク上で実行されるようにします。これは潜在的に問題があります。

通常、システムに適切な要件をインストールする方が簡単で簡単です。 .NET 2のインストールは非常に簡単です(Vista +ではデフォルトで提供されます)。これは、それが設計されたフレームワーク上でプログラムを実行する利点があります。

1

非常に 4.0しかインストールされていないマシンを見つけるのは難しいです。 .NET 2.0互換のバージョンは、VistaおよびWin7マシンにプリインストールされており、プログラムを実行しても問題はありません。 .NETをインストールしていないバージンXPマシンを持っていなければならないでしょう。おそらくサーバーコア。この場合、間違ったバージョンの.NETをインストールすることで、誰かが大失敗を起こしました。

どのように起こったのかわかりませんが、通信の問題のような匂いがします。これを間違えるように他人に任せないでください。あなたのアプリのシステム要件にXPのサポートが含まれている場合は、それが利用可能であることを確認することをお勧めします。セットアッププロジェクトで簡単です。

あなたのapp.configは間違っています。<requiredRuntime>は.NET 1.0以降では廃止されました。適切な呪文は<requestedRuntime>であり、2.0.50727と4.0の両方を求める。

関連する問題