Update DLL without having to recompile applications using it
<p>I have a single C# solution with 3 projects in it:</p>

<p>1) A Console Application implementing a TCP Server</p>

<p>2) A Console Application implementing a TCP Client</p>

<p>3) A DLL file that both the server and the client use</p>

<p>My aim would be to not having to recompile the whole solution just when the DLL changes. After adding the DLL to references to both projects, the Copy Local value is True. With this, all projects have to be recompiled when the DLL changes, but at least it works.</p>

<p>If I set it to False, I get the following issue:
c:\Users\Attila\Documents\Visual Studio 2015\Projects\TcpCommunicator\TcpServer\bin\Debug>TcpServer.exe</p>

<blockquote>
  <p>Unhandled Exception: System.IO.FileNotFoundException: Could not load
  file or assembly 'TcpCommonElements, Version=1.0.0.0, Culture=neutral,
  PublicKeyToken=98782ff4b5018a35' or one of its dependencies. The
  system cannot find the file specified.    at
  TcpServer.Server.Main(String[] args)</p>
</blockquote>

<p>I have added the following snippet in the App.config file for both the Server and Client, but does not seem to have an impact:</p>

<pre><code>  &lt;runtime&gt;
    &lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt;
      &lt;dependentAssembly&gt;
        &lt;assemblyIdentity name="TcpCommonElements"
                          publicKeyToken="98782ff4b5018a35"
                          culture="neutral" /&gt;
      &lt;/dependentAssembly&gt;
    &lt;/assemblyBinding&gt;
  &lt;/runtime&gt;
</code></pre>

<p>I tried having the assembly not Strong Named, to no avail. The dll is present in the directory where it is referenced in the projects.</p>

<p>What am I overlooking? Or is my understanding of dynamic libraries flawed?</p>

<p>edit: Just to clarify, the public interfaces do not change. Let's say the modification is switching from</p>

<pre><code>System.Console.WriteLine("---");
</code></pre>

<p>to</p>

<pre><code>System.Console.WriteLine("+++");
</code></pre>