【问题标题】:How to do I prevent NuGet asking about overwriting a file when restoring packages?如何防止 NuGet 在还原包时询问是否覆盖文件?
【发布时间】:2015-12-23 21:33:17
【问题描述】:

我们最近将 Fody 添加到我们的一些项目中,并且在本地运行良好,但是在 TeamCity 构建服务器上,这会导致问题,我可以通过在 Package Manager 控制台中运行以下命令来在本地复制这些问题 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     

【问题讨论】:

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


    【解决方案1】:

    似乎实际上有一个选项可以防止这种行为:

    -FileConflictAction Ignore
    

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    相关资源
    最近更新 更多