2009-06-25 29 views
2

共有ネットワークドライブへのXCOPYの展開を使用して複数のプログラムを1つのフォルダに展開してきましたので、自宅のプログラムでの更新が非常に簡単です。これらには共有DLL NNC.dllがあります。それは頻繁に変更されることはありませんが、最近行ったので、私が展開するときに私はそれが急変しているので上書きすることができませんでした。.NET DLLのバージョンとxcopyの展開

NNCプロジェクトのアセンブリ名を変更してNNC 1.1.dllがネットワーク上の同じフォルダにコピーされると、新しく配布されたプログラムは新しいDLLと古いものをNNC.DLLで取得しますか?これは理想的ですが、私は展開したいとは思っていません。そして、古いプログラムは、すべてのプロジェクトでまだ修正されていない大きな変化を抱えているので、最新バージョンのアセンブリを取り上げています。

アセンブリの名前が強く、一致するようにバージョン番号を更新しました。

答えて

2

私の疑問に思った通りに機能しました。

1

あなたが持っていると仮定:

  • ClassLibrary、バージョン= 1.0.0.0、文化=中立、なPublicKeyToken = f31de59ccff6c2c9

  • ClassLibrary、バージョン= 2.0.0.0、ニュートラル文化=、なPublicKeyToken = f31de59ccff6c2c9

ないコード/構成の唯一の解決策は、あろう全

それはdoesnの場合
  • oldbinと呼ばれる新しいフォルダに
    1. コピー1.0.0.0各古いアプリケーションについて2.0.0.0
    2. で1.0.0.0を交換しては(古いで、私は共有DLLの以前のバージョンを使用して平均)(追加します「t)は、すでに次のエントリで設定ファイルAppName.exe.config存在:

      <configuration> 
      <runtime> 
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
      <assemblyIdentity name="ClassLibrary" publicKeyToken="f31de59ccff6c2c9" culture="neutral" /> 
      <codeBase version="1.0.0.0" href="oldbin\ClassLibrary.dll"/> 
      </dependentAssembly> 
      </assemblyBinding> 
      </runtime> 
      </configuration> 
      

    この方法で新しいアプリケーションが新しいアセンブリを使用し、古いアプリケーションがoldbinフォルダから古いアセンブリを取得します。

  • 関連する問題