【发布时间】:2015-06-15 05:10:06
【问题描述】:
我有一个 nuget 规范,可以在特定文件夹上安装库文件 (dll) 和两个 zip 包。从 Visual Studio 2013 手动更新包时没有问题。然而,当它被我们的 CI 服务器 TeamCity 和 CCNet 触发时,它只会更新 dll 文件,而不是更新至关重要的两个 zip 包。
我假设由于文件夹中存在以前的 zip 文件,覆盖文件可能有困难,因为在 VS2013 中,提示确认用户是否要覆盖这些文件。
当我使用 VS2013 的包管理器控制台时,我可以轻松地触发 Update-Package –reinstall [Package Id] 并且它会正确地完成工作。现在,我需要做同样的事情,并从我们的 CI 服务器应用一些自动化。
如果我理解正确的话,我可以从 powershell 触发 nuget 命令吗?
非常感谢您的意见,我不是这方面的专家。
【问题讨论】:
-
您可以从 Powershell 脚本中调用任何 exe 文件,因此如果您的 nuget 提供了一个 exe 来触发其命令,是的,您可以。关于覆盖那些 zip 文件,您可以执行
Copy-Item $source $destination -force这将模拟覆盖提示的“是”。很有可能您的 CI 服务器也有在命令期间强制覆盖文件的选项,所以只需查找他们的手册。 -
您好 Vesper,感谢您的意见。如何从 powershell 调用 nuget?
-
我认为您应该安装 nuget command line 并将这些命令用作 exe 调用。我不确定如何在项目的上下文中调用命令行,但您可能会从引用的数据中找到一些有用的东西。并且,您可以将
FileConflictAction设置为overwrite来重建您的压缩文件。