1

C#でコードベースを記述していますが、テストPCにコードを実行するための.NET 3.5の正しいサービスパックがインストールされていないという問題があります(ここで発生するのと同じ問題:私のマシンでのみ例外が発生しています:メソッドが見つかりません:WaitHandle.WaitOne(Int32))。個々のモジュール(またはアセンブリ)のそれぞれに必要な.NETの最小バージョンを教えてくれる、コード全体で実行できる静的コード分析ツールがあるかどうか疑問に思っています。

ありがとう。

4

2 に答える 2

3

プロジェクト プロパティ -> アプリケーション -> ターゲット フレームワーク。

于 2010-09-01T09:30:37.690 に答える
2

私は静的分析ツールを知りませんが、MSDNのドキュメントといくつかのブログ投稿に基づいて私が見つけたものは次のとおりです。

  • VS 2008 / VS 2008 SP1 + / VS 2010 ".NET Framework 2.0"-.NET 2.0 RTM
  • VS 2008 / VS 2008 SP1 + / VS 2010 ".NET Framework 3.0"-.NET 3.0 RTM
  • VS 2008 ".NET Framework 3.5"-.NET 3.5 RTM
  • ClickOnceを参照または使用するVS2008SP1 + ".NET Framework 3.5" System.Data.Entity.dll-.NET 3.5 SP1
  • VS 2008 SP1 + ".NET Framework 3.5"は、System.Data.Entity.dllClickOnceを参照せず、使用していません-.NET 3.5 RTM
  • VS 2010 ".NET Framework 3.5"-.NET 3.5 SP1
  • VS 2008 SP1 +".NETFrameworkクライアントプロファイル"-.NET3.5SP1(クライアント)
  • VS 2010 ".NETFramework3.5クライアントプロファイル"-.NET3.5SP1(クライアント)
  • VS 2010 ".NET Framework 4.0"-.NET 4.0 RTM
  • VS 2010 ".NETFramework4.0クライアントプロファイル"-.NET4.0RTM(クライアント)

ノート:

  • VS2008は.NET3.5RTMに同梱されています。VS 2008 SP1は、.NET3.5SP1に同梱されています。VS2010は.NET4.0RTMに同梱されています。
  • VS 2010は、個別にインストールされない限り、以前のバージョンをターゲットにすることはできません。
  • クライアントプロファイルは.NET3.5SP1で導入されました
  • VS 2010は、拡張可能なマルチターゲティングを備えた最初のバージョンです(したがって、理論的には、VSの更新なしで将来の.NETバージョンをターゲティングできるようになります)。

.NET 3.5 SP1は、重要な機能を追加した唯一のサービスパックであると思います。したがって、MissingMethodException問題を引き起こすのは.NET3.5SP1だけです。たとえば、これは3.0 RTM、3.0 SP1、および3.0SP2が同じパブリックAPIを持っていることを意味します。これについての明確な確認は見つかりませんでしたが、「。NETの新機能」のドキュメントは2.0 / 3.5 / 3.5SP1 / 4.0しかカバーしていないため、これは論理的な結論です。

VS 2008 SP1には、「。NET Framework 3.5」(実際に使用されている場合にのみSP1をターゲットにしようとする)に関するいくつかの奇妙なルールがありますが、VS2010は.NET3.5SP1のターゲットをサポートするだけです。

出典:

于 2010-09-01T11:20:16.177 に答える