Dotneteer / spectnetide

ZX Spectrum IDE with Visual Studio 2017 and 2019 integration
MIT License
205 stars 27 forks source link

[bug] Multiple projects in a solution causes problems #96

Closed nww02 closed 5 years ago

nww02 commented 5 years ago

I tried to create a solution with two projects in.

I was surprised to see my second project seemed to compile first time (when I right-clicked on the second project and selected compile). It seems the compiler was compiling the FIRST project in the solution, and completely ignoring the second.

Even unloading the first project, it still tried to compile the (now unloaded) first project. Then deleting the first project from the solution, leaving only the second one as the only project just made everything go wonky, and nothing worked properly.

It would be good to be able to select the start-up project, and be able to compile and run just the project highlighted by the mouse, or the start-up project if you use F5.

Dotneteer commented 5 years ago

VS IDE has a very complex project system behind what you see in Solution Explorer. It is extremely poorly documented. I use an obsolete custom project system to implement (and represent) the ZX Spectrum project types. In the past I tried to resolve this issue, I spent weeks with it, but was unable to produce a decent solution -- due to the poor documentation.

So, as a kind of limitation, you can use SpectNetIde only with a single ZX Spectrum Code Discovery project within the solution.

I'm sure that it can be solved, but I'm out of new ideas. I'd like to spend my time on developing features with more values...

Ultrahead commented 5 years ago

I was just about to post this bug. Even if you cannot set a start-up project, would it possible that when you want to debug a project for a different target, the emulator gets stopped and replaced with the correct one (so that the run command of debug starts the latter, injects the code and debugs it?)

Dotneteer commented 5 years ago

@Ultrahead, the current obsolete project system in SpectNetIDE is a big technical debt. I need to change it fundamentally so that I can easily manage multiple projects (and even project loading events). Because there are no useful documentation available, I need to do a lot of experiments with VS IDE. Nonetheless, I plan a totally different and more flexible project system for SpectNetIDE v2, which I will start soon...