覆盖NuGet程序包不会更改.NET版本

时间:2019-04-12 18:40:22

标签: teamcity nuget-package nuget-server nuspec nuget-spec

我有一个NET45项目发布到NuGet。由于内部原因(这不是生产应用程序),无论什么情况,我都始终要求版本为1.0.1。我正在使用自己的私有NuGet服务器,该服务器当前是最新的,而TeamCity作为我的构建服务器。

-请参见 TeamCity 底部的编辑/添加-

因此,在4年之后,我不得不对该NuGet软件包进行些微更新。我这样做了,然后将其重新发布为1.0.1。我确实确实将allowOverrideExistingPackageOnPush设置为true,并且我相当有信心代码被覆盖。

除了一个小的代码更改外,我还将该项目更改为.NET 4.7.2,以及将nuspec从“此”,“此”更新为...

<!-- From this -->
<file src="bin\Release\....dll" target="lib\net45\....dll" />
<!-- To this -->
<file src="bin\Release\....dll" target="lib\net472\....dll" />

当我检查服务器时,我的nupkg看起来像这样:

NuPkg GobblyGook with happy artifacts

以前它说的是net45,但现在说的是net472。成功了吗?

但是,我正在使用的应用程序(也不是生产应用程序)是它的Packages/文件夹,仅包含...1.0.1/lib/net45文件夹。

我尝试了各种可能的方法来擦除,重新启动,清除缓存,或者从其他所有方面消除了1.0.1软件包。但是,当我按下它时,它总是只以net45文件夹结尾。

最后,为缓解我的疯狂,我第一次允许使用1.0.2,但令我惊讶的是,有一个net472文件夹。太完美了。

那么我如何真正删除软件包1.0.1和/或更改任何保留的记录,使它不会卡在net45上呢?

在TeamCity 中,“诊断”菜单中有一个“缓存”页面。我四处寻找复位某些缓存的定义和原因,但与此相关的事情没有引起我的注意。另外,它说不要触摸它,除非TeamCity团队成员告诉您。不知道这是否相关,但是如果这样,那么具有这种专业知识的人将不胜感激。

1 个答案:

答案 0 :(得分:0)

对我来说,这确实是一个缓存问题。但是缓存是本地缓存,特别是通过Visual Studio缓存,也可以是NuGet本地缓存。尽管整个基础架构都是正确的,但我的本地计算机仍在为我提供旧版本。

在VS中,工具> NuGet程序包管理器>设置>清除所有NuGet缓存。