4

After a couple years playing Elite: Dangerous on Windows 10 (Horizons, on Steam), my installation abruptly stopped working a couple weeks ago. (There has been one game update since then, but installing it did not fix my issue.)

Initially, the launcher (EDLaunch.exe) just silently failed, without appearing in the taskbar or displaying any windows; you could see it briefly (for less than a second) in Task Manager before it quit. It didn't matter whether I started via Steam, via SteamVR, by using my pinned taskbar icon, double-clicking the EDLaunch.exe icon, or via Dr. Kaiii's EDProfiler program.

After following all the steps on Frontier's knowledge base article on troubleshooting launcher issues, I opened a ticket with Frontier. They suggested the following steps:

  1. First, turn off .NET in Windows Features. An easy way to access this is to type Windows Features in Start > Search. Make sure that all available versions of .NET are disabled.
  2. Open Programs and Features from the Windows Control Panel. An easy way to bring this up is to type 'Programs and Features' into Start > Search.
  3. Uninstall everything that starts with Microsoft .NET, starting with the highest version numbers first (you may find that no entries exist in Programs and Features at all, in this case please continue to step 4)
  4. Download and install all versions of .NET that apply to your versions of Windows:

I followed these steps up until 4, installing .NET Framework 4.6.1. This installer failed; its error messages told me that because my machine already has .NET 4.7.2, I would not be permitted to install 4.6.1. (It appears to be impossible to uninstall .NET 4.7.2 on Windows 10 when it came with the OS update, at least using the instructions above.)

I rebooted, turned .NET back on in Windows Features, and rebooted again. Now, while the launcher continued not to work, it did display an error message: Unhandled Exception error

Again, it has the same behavior regardless of how I try to start it.

(I have searched my PC for a file called CobraBayWindow.xaml, it it appears not to exist on my machine, nor on the machines of some other players I asked whose installations work.)

This exception has been discussed in one Reddit thread, but the solutions discussed there seem to also point to .NET and don't suggest any new troubleshooting steps for me.

My DxDiag.txt file after applying these latest .NET changes shows three edlaunch.exe problems (WER4, WER5, & WER6), all with the same text:

+++ WER6 +++:
Fault bucket 2236876271833650918, type 5
Event Name: CLR20r3
Response: Not available
Cab Id: 0

Problem signature:
P1: edlaunch.exe
P2: 0.4.6496.0
P3: 5c18c354
P4: PresentationFramework
P5: 3.0.0.0
P6: 5a7d2e52
P7: 626a
P8: e1
P9: System.Windows.Markup.XamlParse
P10: 

I'm lost about what I might try next to try to resolve this issue.

  • For reference CobraBayWindow.xaml is a Windows Presentation Foundation (WPF) Window or Control. Presentation Framework is a core part of WPF. This shows that the Elite Dangerous launcher is a WPF application which in turn launches the game. Usually you would only see this error if you had an error in your XAML. XAML is the XML like markup language used to define visual items in WPF. – kenjara Jun 25 at 12:49
3

A few days after I posted the above, the problem went away without any reason I could see, and then came back a few months later and I found a solution, so I wanted to document my answer the question.

It turns out that the EDLaunch.exe is dependent on particular .NET Framework versions (as I hypothesized in the question)—but what I didn’t get was that when you do either of the following:

  1. Accept a prerelease (or possibly brand-new stable release, if Frontier Developments hasn’t issued an update first) version of Windows 10, .NET Framework, or
  2. Install Visual Studio Code

you will get a mandatorily upgraded .NET Framework.

I was aware of #1, the Windows/.NET Framework upgrading issue—and this is likely the issue that Rob Chase was experiencing in their rejected answer saying a reinstall of Windows was necessary.¹

But in my case, it was #2, installing Visual Studio Code (which, ironically, I first installed on my gaming machine to look at XML files like the ones I was scrutinizing above more comfortably). Installing Visual Studio Code results in a new version of .NET Framework being installed which is designed to sit alongside the primary version Windows is running.

(Visual Studio Code is packaged in a somewhat unusual format (for Windows) in that it can be installed from the Windows Store, but isn’t a proper Universal Windows Platform app because—being a compiler—it needs to do things that aren’t allowed in the UWP sandbox. From commentary on the first draft of this answer, I think that is what leads to the strange behavior here, as Visual Studio Code installs a .NET Framework for it to work with, not intending for anything else to use it, but EDLaunch sees it and somehow gets confused.)

EDLaunch.exe may latch onto it but be unable to use it because minor versions can introduce incompatibilities (only patch or build levels at the same minor version are fully interoperable). This was what was causing the exception in the error screenshot.

I’m not a Windows expert by any means, but apparently this latching is persistent once an update of EDLaunch.exe is successful, because the steps I had to follow to eliminate the issue and start Elite normally were:

  1. Uninstall Visual Studio Code and verify via “Windows Features” that only a single .NET Framework remains on the system
  2. Start EDLaunch.exe (a reinstall may be necessary)
  3. Start the game and exit again
  4. Quit the launcher
  5. Install Visual Studio Code once again

EDLaunch.exe continued to work normally—even after the next update of EDLaunch.exe came from Steam and the next patch of Visual Studio Code came from Microsoft. I don’t fully understand the mechanics here, but it is consistent with the FDev knowledge-base article about resolving .NET incompatibilities.

I think, ordinarily, this issue shouldn’t arise at all, when either the Elite launcher or Visual Studio Code is updated. But if it does, temporarily uninstalling Visual Studio Code should fix it—and if it doesn’t, reinstalling the Elite launcher should. Then you can reinstall Visual Studio as you like.

The most confusing thing for me in this situation is that, in the “Windows Features” step of the troubleshooting instructions quoted above, you may find a lot of .NET Framework versions (I had almost a dozen, spanning from versions 2.3 to 4.8), and they aren’t necessarily all conveniently grouped together in the collapsible outline view—you have to search for .NET (not .NET Framework, as that shows installed features matching either .NET or Framework) and uninstall all but the latest — except for the Visual Studio Code one, which you aren’t allowed to uninstall here because Visual Studio Code depends on it.

It’s confusing because most of the versions you need to delete will be together in the outline list, so if you get them, you may mistakenly think you’ve gotten them all—when another is hanging out elsewhere in a collapsed part of the outline. (VSC’s quasi-UWP format may be to blame for this weirdness.)

So the knowledge-base article may need to be expanded to explain this case—I don’t know how many Elite players will also be running Visual Studio Code on their machines, but if they are, they have additional steps to follow.

I hope this is helpful to anyone who may later experience this vexing issue.²


¹ (I suspect that if they had carefully scoured the Windows Features as I describe later, they may have been able to clear the offending version of .NET Framework without totally reinstalling Windows.)

² I neglected to include the text of the error message of which I posted a screenshot above. To improve searchability for this issue, I’ll include it here:

Unhandled Exception: Cannot create instance of 'CobraBayWindow' 
defined in assembly 
'EDLaunch, Version=0.4.6496.0, Culture=neutral, PublicKeyToken=null'. 
Exception has been thrown by the target of an invocation.
Error in markup file                                                                                                                                                                                 
'EDLaunch;component/CobraBayWindow.xaml'. 
  • As a .Net Developer I can tell you that although this is clearly an issue related to .Net its very unlikely that a particular version does not work. Each new .Net version is backwards compatible and contains bug fixes for previous releases. I have loads of different run times both release and beta on my machine and its never caused an issue with Elite. I would put it down to it not updating properly. 4.7.2 is the latest version of .Net and you will probably need it for other things. From the error its clear the the launcher is made in Windows Presentation Foundation which I use daily. – kenjara Jun 25 at 12:43
  • @kenjara I hoped for some expert feedback since I was just stating empirical evidence, so thank you for that! But it sounds as if you are saying what I observed, and the solution I found, is cargo-culting? I can say that I suspected a particular version of .NET Framework was giving the ED Launcher issues, so I was carefully doing one step at a time, then retrying EDLaunch.exe, and it was only after I found I couldn’t uninstall the last non-Windows version b/c it was Visual Studio, and uninstalled that, that EDLaunch worked again. Any thoughts on this? Thanks! – Trey Jun 25 at 16:51
  • @kenjara Oh—and I surmised (along with the Microsoft developer docs) that uninstalling Visual Studio (which made its .NET Framework go away, too) fixed the issue due to incompatibility because the Visual Studio version had a higher minor version number than Windows itself. That may have been a misunderstanding. But the Microsoft .NET installation guide seemed to imply that there could be incompatibilities. Perhaps that’s just Microsoft’s own CYA language, if you’ve never seen any backwards incompatibilities? – Trey Jun 25 at 16:54
  • 1
    Its certainly an interesting one. Given all he development versions and updates I have had over the years I would have though I would be a prime candidate for the issues. That said these kinds of bugs often rely on multiple scenarios in alignment to trigger. What I have found is by googling the problem from the generic WPF app perspective there's loads to read up on. Lie you say it seems like somehow a .net SDK installed with a run time that was only accessible through Visual Studio and Windows could see it but not use it. Its not something I have experienced though. – kenjara Jun 25 at 17:10
  • @kenjara It looks like Visual Studio Code, specifically and as opposed to Visual Studio Pro/etc., may have this issue since it installs like a UWP, but isn’t actually a UWP (since a compiler that produces bare-metal executables currently can’t be)? So the .NET Framework Visual Studio Code installs may look like a fully-fledged .NET Framework one way, and like an unavailable one another? If that’s it, I should edit my answer to just say “Visual Studio Code”, since I didn’t experience it (or try it) with more traditional versions of Visual Studio. – Trey Jun 25 at 17:15
-1

I had this problem and after weeks of troubleshooting, the only thing that solved the issue was reinstalling windows (keeping my personal files). It’s not very convenient, but it works.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.