Ответ 1
Это не оптимальное решение, но это лучшее, что я придумал до сих пор.
Как описано здесь http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/6c042390-0782-4afe-94be-9746d75f5d34/, вы можете разместить
<UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable>
в файле .csproj и получает Visual Studio для использования "нормального" компилятора С# вместо "внутреннего", который использует кешированные файлы. Это, по-видимому, снижает производительность, но я этого не заметил или пытался измерить.
И, как описано здесь http://startbigthinksmall.wordpress.com/2009/03/16/visual-studio-tipp-auto-refresh-file-changes/, вы можете заставить Visual Studio перестать навязывать вам обновленные файлы и просто перезагрузить их.
Я все же предпочел бы найти способ сообщить Visual Studio обновить свои кешированные файлы, а затем вызвать его внутренний компилятор...
Я отмечаю это как "ответ", но мне все же хотелось бы услышать лучшие возможности, и если это произойдет, я отменим это.