怎么做我在恢复包时阻止NuGet询问是否覆盖文件?

时间:2015-12-23 21:33:18

标签: msbuild visual-studio-2015 nuget teamcity fody

我们最近将Fody添加到我们的一些项目中并且在本地这很好,但是在TeamCity构建服务器上,这会导致问题,我可以通过在程序包管理器控制台中运行以下命令来本地复制这些问题 VS2015:

PM> Update-package -reinstall
<snip ... />
Successfully uninstalled 'Fody 1.29.4' from Example.Project
Package 'Fody.1.29.4' already exists in folder 'D:\Projects\Examples\MySolutions\packages'
File Conflict
File 'FodyWeavers.xml' already exists in project 'Example.Project'. Do you want to overwrite it?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "N"):

在构建服务器上,此消息反复重复,直到日志文件占用服务器数据驱动器上的所有可用空间(最后一个TC日志变为28GB!)

我尝试了-NonInteractive,但这似乎对构建服务器没有影响,在本地,在程序包管理器控制台中它表示它无法识别该参数:

PM> Update-package -reinstall -noninteractive
Update-Package : A parameter cannot be found that matches parameter name 'noninteractive'.
At line:1 char:42
+ Update-package -reinstall -noninteractive <<<< 
    + CategoryInfo          : InvalidArgument: (:) [Update-Package], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,NuGet.PackageManagement.PowerShellCmdlets.UpdatePackageCommand     

1 个答案:

答案 0 :(得分:0)

看来实际上有一个选项来阻止这种行为:

-FileConflictAction Ignore

这将采取默认操作(不覆盖)。

在TeamCity中,您可以在NuGet配置中选择此选项(选择高级选项),位于命令行参数的底部:

teamcity commandline parameters