gpt4 book ai didi

c# - Nuget 包未在 Visual Studio 中更新

转载 作者:行者123 更新时间:2023-12-04 17:40:18 27 4
gpt4 key购买 nike

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

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

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

我相信根本原因是由于我的团队负责人设定的要求(这对包本身来说是合乎逻辑的),版本号没有随着每次迭代而增加。例如,当我更新 Package-v1 时,下一次更新仍然是 Package-v1。

我该怎么做才能强制 Visual Studio 从服务器获取最新版本?另外,如果您知道,我想知道为什么会发生这种情况。

最佳答案

What can I do to force visual studio to grab the latest version from the server? Also, I'd like to know why this is happening if you know.



出现这个问题的原因是nuget总是先使用nuget缓存或者global-packages文件夹,避免下载计算机上已经存在的包,提高安装、更新和还原操作的性能。

所以,要解决这个问题,我们应该找出nuget缓存并删除它。这取决于 nuget 包管理类型和 repositoryPath/ 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" />

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

希望这可以帮助。

关于c# - Nuget 包未在 Visual Studio 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54810492/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com