Nuget包在Visual Studio中不更新

问题描述 投票:0回答:1

我正在创建一个nuget包,其中包括一些dll。在这个包的第一次迭代之后,我的团队负责人要求我添加另一个dll。我将它添加到nuspec文件,从服务器中删除旧包,然后推送更新的包。我进入服务器并验证nuget包中是否存在新添加的dll(即我解压缩nuget包并检查它的内容)。

到目前为止,一切看起来都很好。现在,我将新创建的软件包安装到测试项目中,然后进行清理和构建。当我检查bin文件夹时,它没有新添加的dll。它仍然是与第一个包迭代相同的dll设置,但在nuget服务器上它具有所有更新的dll。

我有cleared the nuget cache,删除旧包并重新应用更改,并重新启动visual studio,都没有成功。

我认为根本原因是版本号不会随着每次迭代而增加,这是由于我的团队负责人设置的要求(这对包本身有逻辑意义)。例如,当我更新Package-v1时,下一次更新仍然是Package-v1。

我该怎么做才能强制visual studio从服务器中获取最新版本?另外,如果你知道的话,我想知道为什么会这样。

c# visual-studio nuget package package-managers
1个回答
0
投票

我该怎么做才能强制visual studio从服务器中获取最新版本?另外,如果你知道的话,我想知道为什么会这样。

出现此问题的原因是nuget始终首先使用nuget缓存或global-packages文件夹,以避免下载计算机上已存在的软件包,从而提高安装,更新和还原操作的性能。

因此,要解决此问题,我们应该找出nuget缓存并将其删除。它取决于repositoryPath文件中的nuget包管理类型和globalPackagesFolder / nuget.config设置。

如果你nuget包管理类型是packages.config

默认包缓存位于解决方案文件夹的\packages文件夹中,您可以在\packages文件夹中检查该包。如果没有,请检查您是否有任何nuget.config设置:

如果是,则包缓存将保存在新文件夹YourCustomFolder上,从该文件夹中删除该包。

如果你nuget包管理类型是packagereference

默认包缓存位于全局包文件夹中:

C:\Users\<UserName>\.nuget\packages

您可以删除该文件夹中的包,如果您无法从该全局包文件夹中找到该包,请检查您是否有任何nuget.config设置:

<add key="globalPackagesFolder" value="YourCustomFolder" />

如果是,请从新文件夹中删除包。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.