有哪些现成的包管理工具,以及
是否可以在源代码和预构建的二进制文件之间轻松切换?
在 Visual Studio 中,您可以添加对另一个项目的引用(源代码)或另一个库(dll), 但是你无法从不同的解决方案添加对项目的引用 https://stackoverflow.com/questions/11601950/adding-a-projectreference-to-a-project-that-is-not-in-the-same-solution.
如果您想在之间切换source and dll,那么您必须不断从解决方案中添加/删除项目...这不是一个好的软件架构...它表明这些组件是紧密耦合,并且您需要一个组件的源代码才能测试另一个组件。软件组件应该相互独立。
将所有内容编译为源代码需要花费大量时间。我们曾经
考虑切换到预构建的二进制文件,但我们仍然希望
留下返回源代码的可能性
听起来您有一个大型应用程序,并且您希望引用您自己的代码的一部分作为预编译组件,以减少构建时间。换句话说,你想要建立自己的内部图书馆。现在,外部库没有什么特别的了。您可以轻松地创建 nuget 包 https://learn.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio-net-framework对于你自己的任何一个类库.
例如,您可以有 2 个解决方案:
Your Solution-1
包含您的类库项目。您可以为此解决方案中的每个项目创建一个 nuget 包。 (请注意,nuget 包是.nupkg 文件 https://www.wiliam.com.au/wiliam-blog/creating-a-nuget-package)
Your Solution-2
有您剩余的项目,您可以在此处安装上述软件包。
如果您需要更改您的库,您可以在Solution-1
并创建一个新版本...当然你需要更新包Solution-2
.
注意:您不需要有 2 个单独的解决方案来创建 Nuget 包...您可以为任何类库构建 nuget 包
发布包
如果您希望每个人都可以访问您的包裹,那么您需要Publish https://learn.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio-net-framework否则,您可以将包放在组织内可访问的共享驱动器上。
重大变化
假设您已经制作了自己的 nuget 包:我的内部库并且您想对其进行重大更改:
-
Open 我的内部库源代码,进行更改,构建并创建一个新的 nuget 包,这将是:我的内部库 lib-ver-2
-
您的其他项目依赖于此包,安装我的内部库 lib-ver-2在此项目上(这是您的开发环境)
-
由于新的重大更改,您的开发环境将会崩溃...修复开发环境
-
将您的固定代码发布到测试/生产环境中...
这没有什么特别的......它就像更新任何其他 nuget 包一样