The simplest thing is to try. (I do not have any non-standard testing machines, but I assume that you do.)
Make your entry point very simple, which simply tries to load System.Core.dll and handles the exception accordingly. If it passes, go to another class that can then use it. If this fails, enter the appropriate error message and exit.
I suspect that you do not need to have this level of isolation - if you do not have fields that are not available, I would not expect the assembly to be allowed until you first call the method that needs it. I need to consult the CLR through C # for verification. However, keeping it fairly isolated is likely to be safer - this will avoid accidentally introducing dependencies later. Hell, you can even have your type of โdownload and checkโ in a separate assembly that did nothing but launch another, if everything is in order.
Jon skeet
source share