.net 是否只需要将共享程序集放在GAC中?

.net 是否只需要将共享程序集放在GAC中?,.net,assemblies,gac,.net,Assemblies,Gac,我想在两个项目之间共享一个dll 是否需要将dll仅放在GAC中,或者我可以将其放在任何文件夹中?程序集加载程序将在多个位置查找程序集,其中一个是执行目录 这意味着您可以简单地复制到多个目录 请参见MSDN上的。程序集加载程序将在多个位置查找程序集,其中一个位置是执行目录 这意味着您可以简单地复制到多个目录 请参见MSDN。我强烈建议将其保存在每个项目的Bin文件夹中。除非真的(真的)有必要,否则不要尝试分享它 第二个最好的选择是放入一个共享文件夹(使用相对路径),并在每个项目配置文件()中配置

我想在两个项目之间共享一个dll


是否需要将dll仅放在GAC中,或者我可以将其放在任何文件夹中?

程序集加载程序将在多个位置查找程序集,其中一个是执行目录

这意味着您可以简单地复制到多个目录


请参见MSDN上的。

程序集加载程序将在多个位置查找程序集,其中一个位置是执行目录

这意味着您可以简单地复制到多个目录


请参见MSDN。

我强烈建议将其保存在每个项目的Bin文件夹中。除非真的(真的)有必要,否则不要尝试分享它

第二个最好的选择是放入一个共享文件夹(使用相对路径),并在每个项目配置文件()中配置该文件夹。请注意,您必须始终同时更新这两个项目。如果程序集包含用于在两个项目之间进行通信的类型,那么这是有意义的,但在其他情况下,这是一个不必要的复杂问题


最后一个选择是将其放入GAC中,我强烈建议将其保存在每个项目的Bin文件夹中。除非真的(真的)有必要,否则不要尝试分享它

第二个最好的选择是放入一个共享文件夹(使用相对路径),并在每个项目配置文件()中配置该文件夹。请注意,您必须始终同时更新这两个项目。如果程序集包含用于在两个项目之间进行通信的类型,那么这是有意义的,但在其他情况下,这是一个不必要的复杂问题


最后一个选择是将其放入GAC中。在您的情况下,我建议使用您的源代码管理系统来强制执行结构化共享,而不是GAC

颠覆的过程:

  • 将共享库放在源存储库中的单个位置
  • 在您的两个项目中,每个项目都使用svn:externals来拉入共享库
  • 这将为您提供两个世界中最好的:

    • 源代码管理中的一个点,用于更新共享库(如GAC)
    • 私有bin文件夹部署的灵活性(如不使用GAC)

    在您的情况下,我建议使用您的源代码管理系统来强制执行结构化共享,而不是GAC

    颠覆的过程:

  • 将共享库放在源存储库中的单个位置
  • 在您的两个项目中,每个项目都使用svn:externals来拉入共享库
  • 这将为您提供两个世界中最好的:

    • 源代码管理中的一个点,用于更新共享库(如GAC)
    • 私有bin文件夹部署的灵活性(如不使用GAC)