Visual studio 如何跨多个共享项目同步NuGet软件包&;解决?
在VisualStudio中,在多个共享项目和解决方案之间保持NuGet包同步的适当技术是什么?我们在多个解决方案中共享200多个项目。每个赛道都有一些解决方案,这些解决方案包含了赛道的部分或全部项目。我们还提供了多个平台解决方案,可用于多个轨道以及任意数量的轨道项目。不幸的是,我们有一些供应商定期对其软件包进行更新,而开发人员在使用不同的解决方案时无意中安装/更新了软件包。我们需要确保更新包,而不管使用什么解决方案 不幸的是,NuGet的站点讨论了如何执行实际的更新,但没有讨论如何同步所有内容。。。Visual studio 如何跨多个共享项目同步NuGet软件包&;解决?,visual-studio,visual-studio-2012,nuget,nuget-package,Visual Studio,Visual Studio 2012,Nuget,Nuget Package,在VisualStudio中,在多个共享项目和解决方案之间保持NuGet包同步的适当技术是什么?我们在多个解决方案中共享200多个项目。每个赛道都有一些解决方案,这些解决方案包含了赛道的部分或全部项目。我们还提供了多个平台解决方案,可用于多个轨道以及任意数量的轨道项目。不幸的是,我们有一些供应商定期对其软件包进行更新,而开发人员在使用不同的解决方案时无意中安装/更新了软件包。我们需要确保更新包,而不管使用什么解决方案 不幸的是,NuGet的站点讨论了如何执行实际的更新,但没有讨论如何同步所有内容
不幸的是,没有真正好的方法来做到这一点。。我们要做的是运行我们自己的NuGet存储库。当我们想要强制更新包时,我们会完全删除旧版本,然后上传新版本 当然,这并不能保证开发人员会获取最新的软件包,因此我们已经将在构建之前自动将所有NuGet软件包提取到解决方案中作为CI过程的一部分,因此如果一些软件包被更新,而开发人员没有跟上,那么他们的下一次提交将导致CI构建失败,迫使他们去修复它
这是一种变通方法,但这是我们所能想到的最好办法。这在技术上是不正确的,你不能这样做。您可以使用Visual Studio 2010/2012中的内置工具来完成此操作 为了同时更新所有项目中的包,可以在解决方案级别启动Manage NuGet packages对话框 因此,右键单击解决方案,然后选择“管理解决方案的NuGet软件包”。还有普雷斯托!你走掉了 现在,虽然它不会自动“同步”它们,但它确实允许您查看哪里有重复项,并帮助您将每个项目移动到要使用的nuget软件包的正确版本
不是万能的,但它会有所帮助。可以在一个.props文件中维护解决方案中的所有Nuget版本。但是,此过程需要手动执行一些步骤。我在github上的项目中看到了部分使用这种方法:
2.0.8
5.9.*
如上所述,此步骤不能手动完成。使用nuget软件包管理器安装nuget软件包将覆盖版本属性
dotnet restore
以更新所有包,并运行dotnet list package
以列出每个项目所有请求和已解决的包李>
参见相关问题: