1

バージョン 3.5 でのみ実行する app.config の supportedRuntime の設定はありますか? たとえば、SKU では?

現在、.NET Framework 2.0 で実行すると、メソッドが見つからないというエラーでアプリケーションがクラッシュするという問題があります。これは顧客に悪いフィードバックを与えます。

4

2 に答える 2

2

"sku" 属性は .NET 4.0 までサポートされていません

そして、それは本当の問題ではありません。3.5 に依存していません。.NET 2.0 SP1 または SP2 に依存しています。クライアントは RTM バージョンの 2.0 を実行しています。マイクロソフトは、サービス パックの更新で間違いを犯しました。RTM バージョンでは利用できなかったいくつかのメソッドのオーバーロードを忍び込ませました。アセンブリの [AssemblyVersion] を変更しないと、2.0.0.0 のままです

それは非常に、非常にいたずらで、多くの苦痛を引き起こしました。.NET 4 で対処された参照アセンブリは、GAC 内のアセンブリの単純なコピーではなくなりました。

この問題に対処する基本的な方法:

  • インストーラーに .NET 3.5SP1 ブートストラップを含めます。これにより、クライアントの PC が最新のサービス パックで更新されます。
  • コードを修正して、追加されたメソッドのオーバーロードへの依存を回避するだけです。例外から名前を知っている必要があります。推測すると、WaitHandle.WaitOne(int) である可能性が高いです。SP2 で追加され、最後の引数がfalseに設定された同等の WaitOne(int, bool) よりも広く支持されています。これは、誰もexitContext の意味を理解していないためです
  • あまり役に立たないが現実的なアプローチ: Windows Update がオンになっていないマシンをサポートできないことをクライアントに指摘します。
于 2013-08-30T12:31:21.310 に答える