为什么引用项目而不是包?
Why reference projects over packages?
我看过很多关于 global.json 的强大功能的文章和示例,可以直接在解决方案中,甚至在文件系统中的另一个 project/solution elsehwere 中包含对相关项目的引用,例如如本文所述:https://ievangelist.github.io/blog/the-global-json/
但我真的看不出这样做比打包有什么好处。做那种外部引用(在 .NET Core 之前你可以在没有 global.json 的情况下做,它只是不会显示在解决方案中)有我认为的以下问题:
- 这意味着您必须在文件系统中具有相同组织的不同解决方案,无法强制执行,但现在需要工作。
- 如果您通过文件系统引用源代码,当您将该项目置于无法编译、不完整的状态时会发生什么?如果它是一个包,则不会有任何影响,因为您没有重新部署您的包。
当然,如果项目在同一个解决方案中并且一个依赖另一个项目,则按项目引用,但如果它们不在同一个解决方案中,我不明白你为什么要采用这种方法。
如上文所述,更新程序包的过程可确保完整性,并且您不会无意中破坏某些东西,而这些东西会渗透到您使用该项目作为参考的所有其他项目中。
我见过的唯一提到的专业人士是,您总是获得该引用项目的最新版本,而对于不一定正确的包,或者根据您的正则表达式引用,您可能会获得您没有的开发版本不想。但我认为这是一个优势,你真的不想自动获得最新版本,你只想在可以的时候 1) 确保新版本没有破坏某些东西,2) 确保你有理由更新最新版本。
有什么好处?
引用项目而不是包只是为了方便较小的项目。
进行小改动时不需要构建包,不需要构建服务器,也不需要更新所有项目的版本来引用新程序集。
没有理由也没有意义在不同的不相关项目中重复使用程序集。我从未见过建议在这种情况下使用项目而不是包的专业参考资料。
我看过很多关于 global.json 的强大功能的文章和示例,可以直接在解决方案中,甚至在文件系统中的另一个 project/solution elsehwere 中包含对相关项目的引用,例如如本文所述:https://ievangelist.github.io/blog/the-global-json/
但我真的看不出这样做比打包有什么好处。做那种外部引用(在 .NET Core 之前你可以在没有 global.json 的情况下做,它只是不会显示在解决方案中)有我认为的以下问题:
- 这意味着您必须在文件系统中具有相同组织的不同解决方案,无法强制执行,但现在需要工作。
- 如果您通过文件系统引用源代码,当您将该项目置于无法编译、不完整的状态时会发生什么?如果它是一个包,则不会有任何影响,因为您没有重新部署您的包。
当然,如果项目在同一个解决方案中并且一个依赖另一个项目,则按项目引用,但如果它们不在同一个解决方案中,我不明白你为什么要采用这种方法。
如上文所述,更新程序包的过程可确保完整性,并且您不会无意中破坏某些东西,而这些东西会渗透到您使用该项目作为参考的所有其他项目中。
我见过的唯一提到的专业人士是,您总是获得该引用项目的最新版本,而对于不一定正确的包,或者根据您的正则表达式引用,您可能会获得您没有的开发版本不想。但我认为这是一个优势,你真的不想自动获得最新版本,你只想在可以的时候 1) 确保新版本没有破坏某些东西,2) 确保你有理由更新最新版本。
有什么好处?
引用项目而不是包只是为了方便较小的项目。
进行小改动时不需要构建包,不需要构建服务器,也不需要更新所有项目的版本来引用新程序集。
没有理由也没有意义在不同的不相关项目中重复使用程序集。我从未见过建议在这种情况下使用项目而不是包的专业参考资料。