title: How can I disable the IIS Express launch profile for ASP.NET Core?
body: <p>I'm writing an ASP.NET Core app (on the full .NET Framework) that uses <a href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/weblistener" rel="noreferrer">WebListener</a>, rather than Kestrel.¹ I'm using Visual Studio 2015 with Update 3, and ".NET Core 1.0.1 tools Preview 2" (the latest VS tooling on the <a href="https://www.microsoft.com/net/core#windowsvs2015" rel="noreferrer">download site</a> as of this writing).</p>
  
  <p>Because I'm using WebListener, and because <a href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/weblistener" rel="noreferrer">WebListener is not compatible with IIS Express</a>, I would like to disable the "IIS Express" launch profile in Visual Studio, so that when my teammates open this solution, their Visual Studios will default to running the console app instead of IIS Express, and they'll be able to just hit Run and not get errors.</p>
  
  <p>But so far, I haven't been able to rid VS of the "IIS Express" launch profile. The Project Properties > Debug tab lets me edit the list of profiles, but when I select the "IIS Express" profile, the "Delete" button is disabled. If I edit launchSettings.json directly, and delete the "IIS Express" element from under "profiles", the File > Save operation silently inserts the "IIS Express" profile back into the JSON that it saves to disk!</p>
  
  <p>Apparently Microsoft <em>really</em> wants to always have an "IIS Express" launch profile, even though it isn't necessarily compatible with all ASP.NET Core projects. But it's worth asking: <strong>Has anyone found a way to disable the "IIS Express" launch profile</strong> in an ASP.NET Core project, and have <em>only</em> the self-host option(s) in the launch-profile selector?</p>
  
  <p><sub>¹ For the curious, I'm using WebListener because it will let me self-host in a Windows service and still support NTLM authentication, on a machine without IIS installed. Kestrel only supports NTLM when it's hosted in IIS, not when it's self-hosted.</sub></p>