2

VisualStudio2008でビルドされた.NET3.5用のクラスライブラリプロジェクトがあります。

このソリューションファイルでコアアセンブリをNGENしようとすると、NGENが完了しないか、少なくとも(一晩のように)実行させようと思った時間内に完了しません。

他の誰かがこれを経験しましたか?もしそうなら、あなたはそれを解決しましたか?そして、もしあなたがそうしたら、どうやって?どのような手順を踏んだのですか?

これがNGENのバグである場合、これをMicrosoftに投稿するにはどうすればよいですか?私は接続アカウントを持っていますが、.NETクラス(どこに行くべきかを知っています)の代わりに、この特定の製品のバグレポートをどこに投稿しますか?

問題のクラスライブラリはここにあります:

問題のあるアセンブリはLVK.Coreアセンブリです。

更新:NGEN for .NET 4.0は完了しましたが、完了するまでに15分近くかかりました。

time /t
12:44:39
ngen install lvk.core.dll
Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.
Installing assembly C:\Dev\VS.NET\LVK\LVK.Core\bin\x86\Debug\lvk.core.dll
    Compiling assembly C:\Dev\VS.NET\LVK\LVK.Core\bin\x86\Debug\lvk.core.dll (CLR v2.0.50727) ...
LVK.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=8dbb1dd9b1276c0a <debug>
time /t
12:59:24

更新#2:MicrosoftConnectで問題が発生しました。

4

1 に答える 1

2

この理由は、後でTuple<...>ジェネリッククラスの実装にあることがわかりました。

NGENを介して呼び出されたJITプロセスTuple<...>は、次のタイプの各タイプのNGENされたバージョンを作成することがわかります。

  1. すべての参照型に共通の1つのバージョン
  2. 値のタイプごとに1つのバージョン

私は16個までのタプルバージョンの一般的な引数を持っていたので、ちょうどいい意味で、NGENはTuple<T1, T2, T3, T4, ..., T16>すべての値型に対して存在するすべての組み合わせを作成するのに忙しかった。

型の数を大幅に減らして一般的な引数を減らしたところ、NGENが完成しました。

于 2010-11-08T08:29:39.727 に答える