2009-08-05 12 views
1

私たちが作成した別のdllのバージョン4.3.2.1を参照するコンソールアプリケーションをビルドしました。C#コンソールアプリケーションのリファレンスのバージョン

正常に動作し、その仕事をしました。

その後、4.3.2.1を表示したいので、dllのバージョン4.3.2.2がビルドされ、コンソールアプリケーションが終了します。

コンソールアプリケーションに4.3.2.1以上を使用するように指示する方法はありますか? 4.3.2.1に存在するメソッドは、4.3.2.2にも存在し、dllのすべての後続バージョンに存在します。

答えて

4

はapp.configをの<assemblyBinding>要素を使用します。

<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="Foo.dll" 
           publicKeyToken="1234567890abcdef" 
           culture="neutral" /> 
      <bindingRedirect oldVersion="4.3.2.1" 
          newVersion="4.3.2.2"/> 
     </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
</configuration> 

は、より多くの情報のためにも"Redirecting Assembly Versions"参照してください。

これはもちろん、アプリケーションを再コンパイルしないことを前提としています。再コンパイルを気にしない場合は、「特定のバージョンを使用」をfalseに設定するだけで問題ありません。

+0

ありがとう私はこれを試してみましょう。私はユーティリティを再コンパイルする必要はないので、この方法は完全であるように聞こえます。 –

3

参照が他のDLLに選択されている場合、プロパティウィンドウをプルアップします。 "Specific Version"プロパティがfalseに設定されていることを確認します。

+0

アプリケーションを再構築できれば問題ありませんが、それ以外の場合はapp.configを使用できます。私は "特定のバージョンを使用する"とは、コンパイル時にどのバージョンが参照されるかだけを変更すると考えています。 –

0

dllの名前が変更された場合。例えば。 foo-4.3.2.1.dll、foo-4.3.2.2.dllの唯一の方法は、実行時にアセンブリをロードすることです。

アセンブリ名が変更されない場合は、参照するアセンブリに対して「特定のバージョン」が有効になっている可能性があります。これを無効にすると問題が解決されます。

関連する問題