如何使NuGet包不会覆盖现有版本

时间:2014-06-29 16:58:53

标签: nuget

在将NuGet Pack构建到输出目录时,我不希望它覆盖现有版本

现有命令:

".nuget\nuget.exe" pack "some.csproj" -output "c:\~packages"

我查看了文档,似乎无法找到执行此操作的开关。我尝试使用if exists "c:\~packages\some.nupkg" exit 1,但问题是我无法访问该上下文中的版本号,因此我无法预测会提供一个版本来检查

1 个答案:

答案 0 :(得分:2)

目前无法使用NuGet.exe。

选项包括:

  1. 修改NuGet的源代码以允许额外的命令行选项,以支持不覆盖现有的NuGet包(如果存在)。可以更改PackCommand以支持此功能。
  2. 编写实用程序以生成正确的软件包版本,然后在运行NuGet.exe之前检查软件包是否存在。如果您使用 nuget pack projectfile ,则从项目的输出程序集中获取的AssemblyInformationalVersionAttribute读取程序包版本信息。