繁体   English   中英

在两个项目之间共享软件包的最佳实践?

[英]Best practice for sharing packages between 2 projects?

我知道很多人都在使用两个项目AppNameAppName.API 当两个项目都需要同一包中的类时,会发生什么情况。

在我看来,我有两个选择,创建另一个项目( AppName.Common )并在AppNameAppName.API上都引用该项目,或者只是通过Nuget将包添加到两个项目中。

哪个是最佳做法? 我什至没有错,有没有我错过的选择? 我是编程的初学者,只是在寻找有关高级主题的指南。

非常感谢。

NuGet是为包管理创建的,Visual Studio为您处理包管理。 我认为此问题的“最佳实践”是主观的。 我建议您将两个项目都添加到解决方案中。 然后,在解决方案资源管理器中右键单击您的解决方案,然后选择“管理解决方案的NuGet程序包”菜单选项。

管理解决方案的NuGet程序包...

然后,从程序包管理器中,将程序包安装到解决方案的两个项目中。 当您将此解决方案从一台机器移到另一台机器时,或者其他人在使用它时,他们可以简单地还原软件包以安装依赖项。 您的软件包将存储在解决方案级别的公共文件夹中。

通用软件包文件夹

只需通过Nuget将软件包添加到两个项目中即可。 传递引用方法(依赖项仅依赖于Common)在第二个方面遇到了麻烦,您有3个项目,其中两个需要依赖项,而第三个则不需要,在这一点上,您引入了无意义的依赖项。

不要使程序包管理或项目布局过于复杂; 始终保持简单,否则它们(作为经验法则)会在您扩展规模时妨碍您。

编辑:您提到您是编程新手。 您不一定总是需要X.Impl和X.Api(也比仅仅拥有X更好),并且直到您知道为什么可能需要它们为止,最好使事情变得简单。 您作为新程序员的目标很可能会学习编程。 如果您过于复杂的项目结构和应用程序架构,那么您将浪费时间来进行学习和编程。 专注于编写尽可能少的代码,尽可能少的抽象以及创建尽可能少的csprojs(理想情况下为1)。

我同意Nuget最适合软件包管理。 但是IMO如果不是通用包并且没有被许多团队和项目使用,那么最好不要使用它。

为了您的目的,我觉得使用一个通用的类库并在两个项目中都引用它非常有效,并且可以解决远程程序包的调试问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM