4

フレームワーク3.0および3.5でもうまく機能するプログラムをC#.NET2.0で作成しました。

ただし、.NET Framework 4.0がインストールされている唯一のフレームワークである場合、それは機能しません。ユーザーは2.0をインストールする必要があります。

私はグーグルで次の構成を見つけました:

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

これをapp.configに追加すると、私のプログラムは.NETFramework4.0で問題なく動作します。

私が探しているのは、.NET'Any Framework'構成であり、インストールされている場合は.NET 2.0で、そうでない場合は.NET4.0でプログラムを実行します。

これを行う方法?

4

4 に答える 4

3

これは、設計による構成なしでは機能しません。.NET 4は別のランタイムを使用し、.NET 2アセンブリをロードすると、デフォルトで、CLRのバージョン2にロードされます。この動作を防ぐために再構成し、CLRのv4にロードすることができますが、常に良い考えとは限りません。これにより、作成したコードが、設計およびテストされたフレームワークとは異なるフレームワークで実行されるため、問題が発生する可能性があります。

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

于 2011-01-10T22:31:57.337 に答える
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>
于 2011-01-14T09:34:35.870 に答える
1

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

それがどのように起こったのかわからない、コミュニケーションの問題のようなにおいがする。たぶん、これを間違えるために他の誰かに任せるべきではありません。アプリのシステム要件にXPのサポートが含まれている場合は、それが利用可能であることを確認することをお勧めします。セットアッププロジェクトで非常に簡単です。

それ以外の場合、app.configは間違っ<requiredRuntime>ており、.NET1.0以降は廃止されています。適切な呪文は<requestedRuntime>、2.0.50727と4.0の両方を要求することです

于 2011-01-10T22:41:36.580 に答える
0

アプリケーションの最小要件を変更するために必要なもの。

プロジェクト設定に移動し、ターゲットフレームワークを2.0に変更します。これは、ユーザーがシステムに2.0または4.0のネットフレームワークを持っていても同じように機能します。

于 2011-01-10T22:21:59.643 に答える