2012-05-10 19 views
1

実行時にライセンスエラーメッセージを削除するには、そのソースからKrypton.Toolkit.dllを再構築する必要がありました。参考文献では、古いクリプトンアセンブリを削除し、ソースからのもので置き換えました。 (および関連するキャスト型エラー)間違ったアセンブリをターゲティングするVS

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

私はエラーメッセージを理解する:

私は今、エラーを取得しています。私の新しい参照は同じ名前を持っていますが、名前はまったくありませんので、PublicKeyTokenはありません。

私が理解していないことは、参照が完全に置き換えられても古いPublicKeyTokenを探している理由です。このDLLはGACにはありません。私のメインのプロジェクト.csprojファイルで参照マッチングPKTとの最初のこれらのDLLで


。私は2つのアセンブリに強い名前を付けて、古い参照を置き換えました。

これで、プロジェクトをクリーニングして再ビルドしました。新しい強力な名前がcsprojファイルに置き換えられました。しかし、エラーウィンドウに示されているように、上記のプロジェクトではVisual Studioはまだa87e673e9ecb6e8eを探しています。


ソート済みです。 リファレンスは、私のプロジェクトと同じサードパーティのDLLを参照していました。

答えて

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で参照を更新したりできます。

UPDATE

(それがこのケースで行ったように)、それは問題が今度は他のクリプトンのバージョンを参照する参照DLLであることが判明した場合、問題を診断するための優れたツールが融合ですログビューア

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

なお、Fusionのログビューア必見管理者として実行。そうでない場合、結果は表示されませんが、それ以外の場合は不平を言いません。

+0

ありがとう、これは私が勉強するために探していたものです:) – Amicable

+0

最初は私のメインプロジェクトの '.csproj'ファイルで参照されているので、私は2つのアセンブリに強い名前を付けて置き換えました。 プロジェクトをきれいにして再ビルドし、新しい強力な名前が 'PublicKeyToken = a87e673e9ecb6e8e'に置き換えられましたが、Visual Studioは依然として上記のプロジェクトで' a87e673e9ecb6e8e'を探しています。 – Amicable

+0

あなたの.csprojに 'a87e673e9ecb6e8e'の言及はもうありませんか? –

関連する問題