覆盖 NuGet 包不会更改 .NET 版本
Overwriting NuGet Package does NOT change the .NET Version
我有一个 NET45
项目发布到 NuGet。出于内部原因(这不是生产应用程序),无论如何我都要求它始终是版本 1.0.1。我正在使用我自己的私有 NuGet 服务器,该服务器目前是最新的,TeamCity 作为我的构建服务器。
-见底部TeamCity edit/addition-
所以在 4 年后,我不得不对这个 NuGet 包做一个小的更新。我这样做并将其重新发布为 1.0.1。我确实将 allowOverrideExistingPackageOnPush
设置为 true,并且我非常有信心代码已被覆盖。
除了一个微小的代码更改外,我还将项目更改为 .NET 4.7.2,并更新了 nuspec From This, To This...
<!-- From this -->
<file src="bin\Release\....dll" target="lib\net45\....dll" />
<!-- To this -->
<file src="bin\Release\....dll" target="lib\net472\....dll" />
当我检查我的服务器时,我的 nupkg 看起来像这样:
之前说net45,现在说net472。成功了吗?
但是,我的消费应用程序(也不是生产应用程序),它的 Packages/
文件夹仅包含一个 ...1.0.1/lib/net45
文件夹。
我尝试了所有我能想到的方法来擦除、重新启动、清除缓存以及以其他方式从所有内容中删除 1.0.1 包。但是,当我推送它时,它总是只有一个 net45
文件夹。
最后为了缓解我的疯狂,我允许我第一次推送 1.0.2
,令我惊讶的是,有一个 net472
文件夹。太完美了。
那么我如何真正删除包 1.0.1 and/or 更改任何挥之不去的记录,这样它就不会像 net45
那样卡住?
在 TeamCity 中,诊断菜单中有一个 "Caches" 页面。我四处寻找重置其中一些缓存的定义和原因,但没有发现与此相关的内容。此外,它表示除非 TeamCity 团队成员告诉您,否则不要触摸它。不确定这是否相关,但如果相关,将不胜感激具有该专业知识的人。
这对我来说确实是一个缓存问题。但是缓存是本地缓存,具体是通过 Visual Studio,但也可以是 NuGet 本地缓存。尽管整个基础架构都是正确的,但我的本地机器一直给我提供旧版本。
在 VS 中,工具 > NuGet 包管理器 > 设置 > 清除所有 NuGet 缓存。
我有一个 NET45
项目发布到 NuGet。出于内部原因(这不是生产应用程序),无论如何我都要求它始终是版本 1.0.1。我正在使用我自己的私有 NuGet 服务器,该服务器目前是最新的,TeamCity 作为我的构建服务器。
-见底部TeamCity edit/addition-
所以在 4 年后,我不得不对这个 NuGet 包做一个小的更新。我这样做并将其重新发布为 1.0.1。我确实将 allowOverrideExistingPackageOnPush
设置为 true,并且我非常有信心代码已被覆盖。
除了一个微小的代码更改外,我还将项目更改为 .NET 4.7.2,并更新了 nuspec From This, To This...
<!-- From this -->
<file src="bin\Release\....dll" target="lib\net45\....dll" />
<!-- To this -->
<file src="bin\Release\....dll" target="lib\net472\....dll" />
当我检查我的服务器时,我的 nupkg 看起来像这样:
之前说net45,现在说net472。成功了吗?
但是,我的消费应用程序(也不是生产应用程序),它的 Packages/
文件夹仅包含一个 ...1.0.1/lib/net45
文件夹。
我尝试了所有我能想到的方法来擦除、重新启动、清除缓存以及以其他方式从所有内容中删除 1.0.1 包。但是,当我推送它时,它总是只有一个 net45
文件夹。
最后为了缓解我的疯狂,我允许我第一次推送 1.0.2
,令我惊讶的是,有一个 net472
文件夹。太完美了。
那么我如何真正删除包 1.0.1 and/or 更改任何挥之不去的记录,这样它就不会像 net45
那样卡住?
在 TeamCity 中,诊断菜单中有一个 "Caches" 页面。我四处寻找重置其中一些缓存的定义和原因,但没有发现与此相关的内容。此外,它表示除非 TeamCity 团队成员告诉您,否则不要触摸它。不确定这是否相关,但如果相关,将不胜感激具有该专业知识的人。
这对我来说确实是一个缓存问题。但是缓存是本地缓存,具体是通过 Visual Studio,但也可以是 NuGet 本地缓存。尽管整个基础架构都是正确的,但我的本地机器一直给我提供旧版本。
在 VS 中,工具 > NuGet 包管理器 > 设置 > 清除所有 NuGet 缓存。