Iis 7 使Sharepoint在更新后使用新版本的GAC程序集而不使用IISReset

Iis 7 使Sharepoint在更新后使用新版本的GAC程序集而不使用IISReset,iis-7,sharepoint-2007,gac,Iis 7,Sharepoint 2007,Gac,我们在一些SharePoint网站中使用了一些asp.net用户控制库。有时我们对UserControls的程序集进行更改,有时它所依赖的某些程序集可能会更改(例如日志记录程序集)。我们在GAC中有这些组件。当我们用程序集的新版本替换当前版本时,在执行iisreset之前,代码更改不会生效。SharePoint实际使用的程序集是否缓存在磁盘或内存中的其他位置?如果我是唯一一个使用SharePoint网站的人,那么iisreset就可以了,但是如果有其他用户使用该网站进行数据输入或其他开发,那么它

我们在一些SharePoint网站中使用了一些asp.net用户控制库。有时我们对UserControls的程序集进行更改,有时它所依赖的某些程序集可能会更改(例如日志记录程序集)。我们在GAC中有这些组件。当我们用程序集的新版本替换当前版本时,在执行iisreset之前,代码更改不会生效。SharePoint实际使用的程序集是否缓存在磁盘或内存中的其他位置?如果我是唯一一个使用SharePoint网站的人,那么iisreset就可以了,但是如果有其他用户使用该网站进行数据输入或其他开发,那么它确实会把他们搞得一团糟。有人能解释一下我在这里看到的情况,并告诉我是否有办法强制程序集从GAC重新加载,这样我就可以在没有iisreset的情况下查看代码更改了吗?

SharePoint使用缓存版本的DLL,重置iis是唯一的方法。另一个选择是将DLL放入Bin文件夹,这将导致应用程序池重新加载程序集。Sharepoint开发的一般建议是,每个开发人员都有自己的安装了Sharepoint的VM

谢谢Shoban。在搜索解决方案时,我看到有人提到,如果使用部署包(w/VS或powershell?)部署SharePoint解决方案,它将在不重置IIS的情况下更新GAC程序集,因此我怀疑这一定是可能的。我们在过去尝试过虚拟机,但效果不是很好,因为它们慢慢地彼此不同步(每个人最终都连接到我的虚拟机并降低了我的计算机速度…)我们仍然在SP之外本地进行大部分开发,但最终都必须进行组装和测试。顺便说一下,SharePoint在哪里缓存DLL?内存还是物理拷贝?有趣的是,它没有使用程序集,但是如果您从GAC中删除程序集,它仍然会注意到它丢失了。很抱歉延迟。我知道等待网站重置后恢复是多么令人沮丧,但我认为我们必须接受它。不确定它将DLL缓存在哪里。Sharepoint将程序集作为域无关程序集从gac加载到内存中,这意味着程序集在进程中的所有appdomain之间共享,为了更新程序集,必须通过回收应用程序池重新启动整个进程(w3wp)