I develop software using Visual Studio 2017 on Windows 10 Home with the latest updates. When my application throws an exception, the executable according to Windows remains open by itself. When I (or Visual Studio) try to delete (overwrite it with newly built executable) Windows says test.exe is open by test.exe and cannot be deleted even though test.exe is not running and there are no other processes that have a handle to test.exe (verified by running Sysinternals handle.exe tool). The only way to deal with this problem is to reboot Windows or log off and log on.
test.exe uses test.dll. If the exception happens in test.dll code, then test.dll will stay locked until reboot.
I did not have this problem on my previous old laptop with the same OS and I don't have it on my work laptop with Windows 10 Pro.
The .net application is a console one written in c#. The content of the code does not matter, it can be just one line that generates any exception. If I run the binary from explorer, I do not experience this problem, only when I run it from the command line. If I kill the main thread test.exe of my test.exe process in sysinternals process explorer before I hit "debug" or "close" button, then I can delete the file without a problem.
It looks like a Windows bug but why I did not have it in my old laptop and my work laptop?
I wonder if anyone else has experience the same problem? Or even better if someone knows how to fix it.
Thanks a lot!