Dear Jason and all concerned,
Thank you very much for the engagement and enthusiasm.
The development team reacted to your renewed input and answer:
The only variable among 2017, 2018, 2019 is the .NET version and its related configurations, so we still believe this is the root cause.
We talked with other developers before and thought that the behaviour in 2019 is correct:
.NET should not reload the new assembly automatically, since there is already one with the identical signature in memory.
The best practice of solving this issue would be to load an add-in into a separate AppDomain; when reloading, the old AppDomain gets unloaded first and a new one will then be created to hold the add-in.
I personally am very much in favour of open sourcing AIM to let the community deal with it, but in the end, this should be decided by the product managers.
I really am sorry to hear that this is continuing to cause problems for you.
A surprising number of alternative approaches have been proposed and implemented, with surprisingly differing rates of successful reuse by other developers.
In case you are not aware of them, have a look at the approaches for implementing Edit and Continue, Debug without Restart, and Live Development suggested in The Building Coder topic group:
http://thebuildingcoder.typepad.com/blog/about-the-author.html#5.49
As said, the best way forward is probably to submit a wish list item for this, or two:
- Development team modifies AIM to load add-in into a separate AppDomain and enable reload as suggested above.
- Open source AIM to enable community to fix it.
Lots of votes will help drive it forward fast.
Thank you!
Best regards,
Jeremy