有大量关于在部署/发布方案中不使用 GACUtil的信息/博客/msdn 文章,并且 MSI 或其他 Windows 安装程序技术是更好的选择。
但是,在您的开发工作流程中使用 GACUtil 是否仍然合适。
我们有许多强命名并从 GAC 引用的 DLL。为了使开发团队保持同步,一旦生成了支持 GAC 的 DLL 的新版本,它就会自动添加到所有其他开发人员 GAC 中,作为他们日常主干检查的一部分。工作流程类似于:
- 开发人员对我们的一个 GAC 程序集进行更改,在本地对其进行测试,并在签署后编译 DLL 的发布版本
- 发布版本从 \Project_DIR\bin\Release*.dll -> \COMPANY_GAC\Current*.dll 复制
- 其他开发人员运行我们的源代码控制检查批处理脚本:
- 查看最新版本的 COMPANY_GAC\Current*.dll
- 在每个 DLL 上运行 GacUtil.exe
到目前为止,这对我们来说一直有效,但它变得有点复杂: - 更大的团队,更严格的 GAC 变更管理。- CLR2.0 和 CLR4.0 编译的 Company_Gac 程序集需要不同版本的 GACUtil.exe - 管理具有多个功能分支的构建/集成服务器上的程序集(因此必须热交换不同的 GAC Dll)
我们是否应该寻找比 GACUtil & Scripts 更强大的东西来管理它?
一个考虑是我们自己在 powershell 中滚动一些东西来检查程序集类型并将程序集添加到正确的 GAC。有人做过吗?
欢迎任何其他关于开发人员如何管理其 GAC 工作流程的建议。