Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report on
Developer Community with
your current version information, steps to reproduce, and relevant error
messages or log files if you are hitting an issue that looks similar to
this resolved bug and you do not yet see a matching new report.
If a user has an old expired license in `%LOCALAPPDATA%\VirtualStore\ProgramData\Mono*`, then no amount of logging-out, logging-in, re-installing, or deleting `%PROGRAMDATA%\Mono*` will properly refresh the licenses (see duplicate bugs for some examples).
This is a difficult problem for users to track down. Presumably when Xamarin is refreshing licenses or deleting licenses (during account logout), it has read-write access to the `%LOCALAPPDATA%\VirtualStore\ProgramData\Mono*` folders. Assuming that's true, then it can simply delete both of the folders from the VirtualStore. That way, the only licenses visible to the license-checking code will be in `%PROGRAMDATA%\Mono*`.
I'm still not sure what mechanism Windows uses to determine that it should copy the licenses into the VirtualStore in the first place, but this simple solution seems good enough to me, at least for the time being.
*** Bug 17212 has been marked as a duplicate of this bug. ***
*** Bug 20679 has been marked as a duplicate of this bug. ***
I think we should still go with Brendan's proposed fix, since it doesn't look easy to repro with an actually old expired license (under \Mono?? must be AGES old).
@Saurabh - If you can't naturally reproduce the initial state, you should be able to force the reproduction by manually copying your license files (creating the directories as needed).
I have checked this issue with previous Stable build 3.7.248, and observe that old expired license created at directory %LOCALAPPDATA%\VirtualStore\ProgramData\Mono for Android and %LOCALAPPDATA%\VirtualStore\ProgramData\MonoTouch do not get deleted after login with a valid account.
However with XVS 3.8.135, folder haveing old expired license get deleted form directory %LOCALAPPDATA%\VirtualStore\ProgramData\Mono for Android and %LOCALAPPDATA%\VirtualStore\ProgramData\MonoTouch after login a valid account.
Hence, closing this issue.