2015-08-14 56 views
0

我已阅读了有关此特定和/或相关问题的大量讨论(请参阅Article1Article2),但它们似乎都已被询问前一段时间。鉴于NuGet 2.8+的变化,我想知道是否有人能够找到解决这个问题的方法。如何在编译时将NuGet包更新到最新版本而不改变项目文件

我想要做的是确保我的项目始终使用最新版本的某些(不一定是全部)NuGet软件包构建而不更改项目文件。我不能改变项目文件的原因是因为它们被签入源代码管理(Visual Studio),并且当“upsteam”项目之一创建一个更新的项目时,构建会在我们的持续集成管道内(不能更改文件)自动触发NuGet包的版本。

到目前为止,我已经能够在构建时使用最新版本的NuGet包来更新构建的预期结果,这得益于此Article3的帮助,但这实际上改变了* .csproj文件(使用NuGet Update命令),这对我们来说不是一个可行的选择。

对此的任何建议表示赞赏。

回答

0

如果您使用的是NuGet 2.x版,那么这是不可能的。更新NuGet包时NuGet版本2将修改您的项目文件和packages.config文件。

如果支持您的项目类型,您可以查看使用NuGet版本3,因为它允许您使用通配符指定范围(例如1. *)。

这里的另一种选择是使用Paket。您可以使用Paket从命令行更新NuGet包,它不会修改您的项目文件。但是,您必须对所有NuGet更改使用Paket,而不是Visual Studio NuGet程序包管理器。

最后的选择是不为那些NuGet包使用NuGet,而是有一个单独的构建步骤,下载,更新它们并将它们提取到项目引用的公共lib目录。

+0

谢谢你的建议。我看着他们。 –

相关问题