title: How do I properly register a protocol handler on Windows 8?
body: <p>I have a <a href="https://github.com/oliversalzburg/TelProtocolHandler" rel="noreferrer">small project to handle <code>tel:</code> protocol links</a>. It's a desktop application, which I'm developing using Visual Studio 2013 Community Edition.</p>
  
  <p>Previously, I used to register the handler with a simple registry modification:</p>
  
  <pre><code>Microsoft.Win32.Registry.SetValue(registryKey, string.Empty, registryValue, Microsoft.Win32.RegistryValueKind.String);
  Microsoft.Win32.Registry.SetValue(registryKey, "URL Protocol", String.Empty, Microsoft.Win32.RegistryValueKind.String);
  
  registryKey = @"HKEY_CLASSES_ROOT\tel\shell\open\command";
  registryValue = "\"" + AppDomain.CurrentDomain.BaseDirectory + "TelProtocolHandler.exe\" \"%1\"";
  Microsoft.Win32.Registry.SetValue(registryKey, string.Empty, registryValue, Microsoft.Win32.RegistryValueKind.String);
  </code></pre>
  
  <p>However, this no longer seems to work on Windows 8. While the registry key has the desired value, the links are still handled by a different application. My tool doesn't even appear in the protocol handler selection:</p>
  
  <p><img src="https://i.stack.imgur.com/A4FF9.png" alt="enter image description here"></p>
  
  <p>I've looked at <a href="http://mobile.dzone.com/articles/walkthrough-using-windows-8" rel="noreferrer">Walkthrough: Using Windows 8 Custom Protocol Activation</a>, but I can't relate the mentioned information to my application. The article mentions a <code>.appxmanifest</code> file, which I don't have in my project and am unable to add as a new item.</p>