Aar*_*rch 3 macos mono servicestack
ServiceStack对Razor v2的新支持使用a FileSystemWatcher来检测对跟踪视图文件的更改并将其标记为无效,以便在下次请求时重新编译它们.
这非常适合调试,因为它允许您编辑视图而不是重建/重新启动项目.
在我的Mac OS X(Mountain Lion)上的Mono(目前运行3.0.10)上,显然存在Mono错误,其中FileSystemWatcher不会引发Changed文件更改事件.此外,它也不会为子目录中的文件引发任何事件,即使IncludeSubdirectories设置为true也是如此.
在调查和测试了各种各样的东西后,我发现了一些针对Mono的旧版bug报告,说明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);
Run Code Online (Sandbox Code Playgroud)
如果您将环境变量设置MONO_MANAGED_WATCHER为任何内容(我将其设置为"enabled"),那么它将使用DefaultWatcher哪个是托管实现,并且它适用于Mac OS X.
所以在我的应用程序启动期间,我补充说
Environment.SetEnvironmentVariable("MONO_MANAGED_WATCHER", "enabled");
Run Code Online (Sandbox Code Playgroud)
瞧,保存新版本后,我的Razor视图会被重新编译.:)
| 归档时间: |
|
| 查看次数: |
1187 次 |
| 最近记录: |