.net 何时要求我使用GAC共享程序集?

.net 何时要求我使用GAC共享程序集?,.net,deployment,gac,.net,Deployment,Gac,可能重复: 根据文件: 您应该仅在需要时通过将程序集安装到全局程序集缓存来共享程序集。一般原则是,保持程序集依赖项私有,并在应用程序目录中定位程序集,除非明确要求共享程序集 何时“明确要求”共享程序集?如果需要程序集共享,则可以通过XCOPY部署(即专用程序集)在不同位置物理分发相同的程序集。我不理解这个一般准则。我倾向于遵循的一条一般规则是,如果一个程序集将由同一台机器上的多个应用程序使用,它应该放在GAC中,也就是说,您已经构建了自己的有用代码框架 如果您只有一个应用程序,通常最好只使用b

可能重复:

根据文件:

您应该仅在需要时通过将程序集安装到全局程序集缓存来共享程序集。一般原则是,保持程序集依赖项私有,并在应用程序目录中定位程序集,除非明确要求共享程序集


何时“明确要求”共享程序集?如果需要程序集共享,则可以通过XCOPY部署(即专用程序集)在不同位置物理分发相同的程序集。我不理解这个一般准则。

我倾向于遵循的一条一般规则是,如果一个程序集将由同一台机器上的多个应用程序使用,它应该放在GAC中,也就是说,您已经构建了自己的有用代码框架

如果您只有一个应用程序,通常最好只使用bin文件夹


请注意,如果要部署到GAC,则需要对程序集进行签名(使用强名称密钥)并进行版本设置。

仅在极少数情况下。如果我没有记错VS插件需要在GAC中。其他程序的插件可能存在类似问题。可能还有一些APTCA方案。Biztalk还要求将程序集部署到GAC。我想问的是,在哪些不同的方案中,您将被迫“显式共享”程序集。我不是问什么时候在GAC中部署程序集。投票重新打开并编辑该主题。虽然最初的主题行使它看起来是重复的,但它并不是完全重复的,因为Ian询问了MSDN文档中的一个特定点。在我看来,在一些应用程序之间共享一个程序集并不是一个很好的理由。我不知道,你可以争论赞成和反对。像企业库这样的框架应该部署到GAC吗?我想这真的取决于每一个个案,你同意吗?@CodeInChaos这正是我们所处的位置。多个应用程序正在共享一个程序集。我们可以跨不同的目录(私有程序集)复制物理副本,也可以使用GAC。为什么“共享”是使用GAC的一个很好的理由?就我个人而言,我试图避免使用GAC,但在.Net开发(Windows和ASP.Net)10年来,它没有太多的用途,这并不是说它没有它的用途。从技术上讲,正如许多文档指出的那样,GAC用于在应用程序之间共享程序集。在共享库时,我最有可能使用符号链接或只是复制它们,这取决于我想要的版本控制语义。