Updating to bring in line with how the task works

It now correctly uses Assembly.Location instead of
Environment.CurrentDirectory, as does the task.
This means it fixes the weird, hard to find bug that is only from when
running it as a scheduled task.
Means the task now works end to end.