1

Krypton.Toolkit.dll実行時のライセンス エラー メッセージを削除するために、ソースからを再構築する必要がありました。参照では、古いクリプトン アセンブリを削除し、ソースからのものに置き換えました。

エラーが発生しています:(および関連するキャスト型エラー)

Could not load file or assembly 'ComponentFactory.Krypton.Toolkit, Version=4.0.0.0, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e'

エラーメッセージを理解しました。私の新しい参照には同じ名前が付いていますが、厳密な名前はまったくないため、PublicKeyToken はありません。

私が理解していないのは、参照が完全に置き換えられているときに古い PublicKeyToken を探しているのはなぜですか? この DLL は GAC にはありません。


最初に、これらの DLL と一致する PKT が私のメイン プロジェクト.csprojファイルで参照されています。2 つのアセンブリに厳密な名前を付け、古い参照を置き換えました。

次に、プロジェクトをクリーンアップして再構築し、csproj ファイルで新しい厳密な名前を置き換えました。a87e673e9ecb6e8eただし、エラー ウィンドウに示されているように、Visual Studio はまだ前述のプロジェクトを探しています。


並べ替えました。参照は、私のプロジェクトと同じサード パーティの DLL を参照していましたが、それらは競合しています。

4

1 に答える 1

1

ソリューション内の何かがまだ厳密な名前のバージョンへの参照を保持しているようです。

.csproj (または、VB を使用している場合は .vbproj だと思います) を開いて、お気に入りのテキスト エディターでその参照を探すことができます。次のような行を探します。

<Reference Include="ComponentFactory.Krypton.Toolkit, Version=4.0.0.0, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e, processorArchitecture=MSIL">
</Reference>

おそらく、PublicKeyToken を検索するだけで十分です。

見つかった場合は、厳密な名前のバージョンをまだ参照しているプロジェクトがわかります。

次のようなサブノードが表示される場合があります

<Reference ... >
  <HintPath>..\SomePath\ComponentFactory.Krypton.Toolkit.dll</HintPath>
</Reference>

リンカに特定のパスを調べて参照を解決するように指示します。

プロジェクト ファイルを手動で編集する (最初にバックアップする) か、その知識を使用して VS を介して参照を更新することができます。

アップデート

(この場合のように) 問題が参照されている DLL にあり、その DLL が他の Krypton バージョンを参照していることが判明した場合、問題を診断するための優れたツールは Fusion Log Viewer です。

http://msdn.microsoft.com/en-us/library/e74a18c4.aspx

Fusion Log Viewerは管理者として実行する必要があることに注意してください。そうでない場合、結果は表示されませんが、それ以外の場合は文句を言いません。

于 2012-05-10T15:23:25.450 に答える