2011-10-21 13 views
3

私の.net 4プロジェクトからprotobuf-net v2を実行しようとしています。.net 4でリンクエラーが発生する

私は.net3ディレクトリからDLLを取り、私のプロジェクトに入れるが、私は今取得:

は、ファイルまたはアセンブリ「いるProtobufネットをロードできませんでした、バージョン= 2.0.0.450、ニュートラル文化=、なPublicKeyTokenを= 257b51d87d2e4d67 'またはその依存関係の1つ。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040):

<runtime> 
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="protobuf-net" publicKeyToken="257b51d87d2e4d67" culture="neutral" /> 
    <bindingRedirect oldVersion="2.0.0.450" newVersion="4.0.0.0" /> 
    </dependentAssembly> 
</assemblyBinding> 

が、ノー行く

は、私は私のweb.configファイルにこれを追加してみました。任意のヒント?

+0

言います。何かが2.0.0.450を求めたら、代わりに4.0.0.0を与えます。これはあなたが望むものではありません。シナリオが何であるかを明確にすることはできますか?私は作者ですが、助けてくれると幸いですが、私は不明です... –

答えて

1

ほとんどの場合、ここにはアセンブリバインディングの必要はありません。 の前にのバージョンが見つからないエラーが発生した場合は、1.0.0.278から2.0.0.450へのバインディングを追加することができます(たとえば、実際のバージョン番号を使用します)。

Aバインディング~ 4.0.0.0は間違っています。すでに正しいアセンブリを使用しています。 2.0 dllと3.0 dllの唯一の違いは、パブリックインターフェイス上のWCF関連APIの一部です。 4.0は、このライブラリに影響を与える新しいAPI機能を導入していないため、特定の4.0 dllはありません。したがって、net30フォルダからのdllは.net 4.0にとってはまったく問題ありません。

nugetパッケージ(r452以降)を使用すると、自動的にプロジェクトに適したdllが選択されます。

+0

ありがとうございました。 私が望むのは、dllを使用できることです。私はr452を見つけることができません、私はプロジェクトのページでr450を参照してください。 私は年齢ではネットを行っていませんが、私はdllを正しくリンクしており、すべてのインテリセンスが正常に動作すると信じています。 プロジェクトを実行すると、ファイルまたはアセンブリ 'protobuf-net、Version = 2.0.0.450、Culture = neutral、PublicKeyToken = 257b51d87d2e4d67'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040) 何を調べるべきですか? –

+0

私のテストプロジェクトをprotobuf-netに命名することができたWhopsは、アセンブリの衝突と思われます。偽者;-) –

+0

@Rickardはすべてソートされていますか? Btw、r452については、ナゲットパッケージを参照してください。 r450とr452との間の変化は最小限である(エッジケースの場合の事象) –

関連する問題