【问题标题】:Update nuget package on a pre build event在预构建事件上更新 nuget 包
【发布时间】:2021-01-31 04:57:24
【问题描述】:

我正在寻找一些关于在预构建事件中自动更新 nuget 包的建议。我已经搜索了堆栈溢出,这将我带到了六年前的帖子,其中大部分不再适用。

我确实在我们的项目中使用了以下命令:

"$(SolutionDir)nuget\Nuget.exe" update "$(ProjectDir)packages.config" -source "<PackageSource>" -id "<nuget package to update>"

这个确实提示我输入用户名密码,因为这是在我们的组织内。即使是第一次,也没有多少用户有兴趣输入他们的信用。由于某种原因,这也没有更新 packages.config。

有没有强迫它?或者有没有更好的方法来做到这一点。

【问题讨论】:

标签: visual-studio nuget csproj pre-build-event


【解决方案1】:

实际上,它在我这边运行良好,它会将所有 nuget 包从 packages.config 更新到最新的。

要从VS IDE上的nuget包源中删除身份验证并使其下次不会发生,您应该将其信息添加到全局nuget.config文件中,以便下次不会提示。见this official document

步骤

1)关闭VS,从C:\Users\xxx(current user)\AppData\Roaming\NuGet打开nuget.config

添加这些:

<configuration>

<packageSources>
    <add key="xxxx(your nuget package source)" value="xxxxxx" />

</packageSources>

<packageSourceCredentials>
<xxx(your nuget package source)>
  <add key="Username" value="xxxx" />
  <add key="Password" value="xxxx" />

</xxx(your nuget package source)>

</packageSourceCredentials>

</configuration>

2) 保存文件,然后重新启动 VS 以启用新的更改。

3) 之后,您可以在命令中删除包源节点,它已经输入了全局nuget.config 文件。每次运行命令,都会先搜索
全局nuget.config 文件下的任何信息,如果有,您不必在命令下键入。

运行这个:

$(SolutionDir)nuget\Nuget.exe update $(ProjectDir)packages.config -id <nuget package to update>

4) 如果仍然没有更新packages.config,你可以试试这些:

删除 bin 和 obj 文件夹 download the latest nuget.exe cli v5.7.0 并使用新版本。

另外,如果您在更新过程中遇到任何错误信息,请与我们分享。

这是一个关于我的测试结果的小演示:

【讨论】:

    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多