Cor*_*y P 5 c# package-managers package visual-studio nuget
我正在创建一个 nuget 包,其中包含一些 dll。在这个包的第一次迭代之后,我的团队领导要求我添加另一个 dll。我将其添加到 nuspec 文件中,从服务器中删除旧包,然后推送更新的包。我进入服务器并验证新添加的 dll 是否存在于 nuget 包中(即我解压缩 nuget 包并检查其内容)。
到目前为止一切看起来都很好。现在,我将新创建的包安装到测试项目中,然后清理并构建。当我检查 bin 文件夹时,它没有新添加的 dll。它仍然是与第一个包迭代相同的 dll 设置,但在 nuget 服务器上它具有所有更新的 dll。
我已经清除了 nuget 缓存,删除了旧包并重新应用了更改,并重新启动了 Visual Studio,但都没有成功。
我相信根本原因是版本号没有随着每次迭代而增加,这是由于我的团队领导设定的要求(这对于包本身来说具有逻辑意义)。例如,当我更新Package-v1时,下一次更新仍然是Package-v1。
我该怎么做才能强制 Visual Studio 从服务器获取最新版本?另外,我想知道为什么会发生这种情况,如果你知道的话。
我该怎么做才能强制 Visual Studio 从服务器获取最新版本?另外,我想知道为什么会发生这种情况,如果你知道的话。
出现此问题的原因是 nuget 始终首先使用 nuget 缓存或全局包文件夹,以避免下载计算机上已存在的包,从而提高安装、更新和还原操作的性能。
因此,要解决这个问题,我们应该找出nuget缓存并将其删除。这取决于nuget包管理类型和repositoryPath/文件globalPackagesFolder中的设置nuget.config。
如果您的 nuget 包管理类型是packages.config:
默认的包缓存位于\packages解决方案文件夹中的文件夹中,您可以在该文件夹中检查该包\packages。如果没有,请检查您是否有任何nuget.config设置:
如果是,包缓存将保存在新文件夹中YourCustomFolder,从该文件夹中删除该包。
如果您的 nuget 包管理类型是packagereference:
默认包缓存位于全局包文件夹中:
C:\Users\<UserName>\.nuget\packages
Run Code Online (Sandbox Code Playgroud)
您可以删除该文件夹中的包,如果您无法从该全局包文件夹中找到该包,请检查您是否有任何nuget.config设置:
<add key="globalPackagesFolder" value="YourCustomFolder" />
Run Code Online (Sandbox Code Playgroud)
如果是,请从新文件夹中删除包。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
8176 次 |
| 最近记录: |