在调查和测试各种事情之后,我发现了几个针对 Mono 的关于FileSystemWatcher
功能失败的旧错误报告。
该问题的解决方法可在 Mono 源代码中找到:
https ://github.com/mono/mono/blob/master/mcs/class/System/System.IO/FileSystemWatcher.cs
string managed = Environment.GetEnvironmentVariable ("MONO_MANAGED_WATCHER");
...
if (String.Compare (managed, "disabled", true) == 0)
NullFileWatcher.GetInstance (out watcher);
else
DefaultWatcher.GetInstance (out watcher);
如果您将环境变量设置MONO_MANAGED_WATCHER
为任何值(我将其设置为“启用”),那么它将使用DefaultWatcher
托管实现,并且可以在 Mac OS X 上运行。
所以在我的应用程序启动期间,我添加了:
Environment.SetEnvironmentVariable("MONO_MANAGED_WATCHER", "enabled");
瞧,我的 Razor 视图在我保存新版本后重新编译。:)