title: How to use a controller in another assembly in ASP.NET Core MVC 2.0?
body: <p>For the sake of modularity, I have created some controllers in different assemblies. Each assembly represents a bounded context (a module, a sub-system, a division, etc.) of the overall system.</p>
  
  <p>Each module's controllers are developed by someone that knows nothing about other modules, and a central orchestrator is about to cover all these modules in one single application.</p>
  
  <p>So, there is this module called school, and it has a <code>TeacherController</code> in it. The output of it is <code>Contoso.School.UserService.dll</code>.</p>
  
  <p>The main orchestrator is called <code>Education</code> and it has a reference to <code>Contoso.School.UserService.dll</code>.</p>
  
  <p>My <code>program.cs</code> is:</p>
  
  <pre><code>    public static IWebHost BuildWebHost(string[] args) =&gt;
          WebHost.CreateDefaultBuilder(args).UseKestrel()
              .UseStartup&lt;Startup&gt;()
              .Build();
  </code></pre>
  
  <p>Yet for the routes of teacher controller, I get 404. How to use controllers in other assemblies?</p>