在我的开发机器上,我有一个慢速系统盘 (SSD) 和一个快速 (RAM Disk) 开发盘。一旦 Visual Studio 启动并运行,开发/构建/测试周期非常快,但应用程序启动要慢得多 [我相信] 因为程序集的影子复制到 CLR 下载缓存所在的系统磁盘。
我已经将 Visual Studio 调试程序集缓存位置指定在 RAM 磁盘上,因此在从 SSD 初始加载后,大多数引用的程序集已经在 RAM 磁盘上。
我知道我可以将自定义代码添加到我的应用程序以影响此更改。但是,由于此配置特定于我的开发环境,因此我不想进行任何代码更改来修改卷影复制行为。这似乎给我留下了 3 个选择:
- 禁用卷影复制
Web.Debug.config
- 以某种方式指定仅需要的
CachePath
和ApplicationName
设置AppDomainSetup
Web.Debug.config
- 以某种方式指定 CLR 的下载缓存路径指向我的 RAM 磁盘
我对 CLR 如何使用 Shadow Copy 的细节不够熟悉,无法知道禁用它是否会以微妙或明显的方式对我的开发和测试周期产生不利影响。(我在我的开发盒上使用 IIS Express,而不是 IIS,以防万一。)所以我想我还有 3 个问题:
禁用卷影复制对代码/构建/运行本地开发周期有什么影响?
是否有配置设置来指定程序集的卷影副本位置?
有没有办法更改全局 CLR 下载缓存位置或Temporary ASP.Net Files
目录位置?
(当然还有 4:我还错过了什么吗?:)