3

.NET 4.0 のみがインストールされているコンピューターで、変更を加えることなく、.NET 3.5 用にコンパイルされた dll を使用して一部の .NET アプリケーションを実行できることに気付きました。ただし、常にこのようになるとは限りません。アプリケーションで System.Core 参照を使用する dll を使用すると、System.Core が見つからないためアプリケーションが起動せず、Name.exe に次を追加する必要があります。 .config:

<configuration>
  <startup>
    <supportedRuntime version="v4.0" />
  </startup>  
</configuration>

System.Core を使用している場合にのみこれを使用する必要があるのはなぜですか? System.Core が .NET 3.5 で追加されたことは知っていますが、.NET 4.0 との違いは何ですか? 他の参照は .NET 1.1 または 2.0 からさらに古いのに、なぜ問題が発生しないのでしょうか?

4

1 に答える 1

1

System.Func<TResult>その理由は、.NET 4が System.Core.dll から mscorlib.dll に移動したことにあると思います。そのため、プロジェクトをコンパイルできても、mscorlib.dll でそのメソッドが見つからないため、実行できない場合があります。

以下のように、.NET 3.5 で System.Core.dll を参照するようにプロジェクト ファイルを更新することで、これを修正できます。

<Reference Include="System.Core"> 
    <RequiredTargetFramework>3.5</RequiredTargetFramework> 
</Reference>
于 2012-10-24T07:40:26.477 に答える