我有一个库,我将其放入多个项目中。
今天我将 master 合并到了该库的分支中。
合并后,我创建了一个新的 beta 包来拉入我的开发分支项目,以便它包含主分支的所有内容以及开发分支使用的所有更改。
当我将新包拉入项目时,我发现以前分支版本中的某些类现在丢失了。
打开 PDP,我可以看到这些类不再包含在包中,并且一个类缺少一个字段,该字段明确存在于推送到 Nuget 的库解决方案中。
库项目中显示的类:
using Libraries.Models.Web.Interfaces;
using Libraries.Models.Web.Objects;
using Libraries.Models.Web.Page;
using JetBrains.Annotations;
namespace Libraries.Models.Web.Subjects
{
[PublicAPI]
public class SubjectPage : WebPage, ISubjectPage
{
public string Name { get; set; }
public string Video { get; set; }
}
}
拉入API项目时反编译的类:
// Decompiled with JetBrains decompiler
// Type: Libraries.Models.Web.Subjects.SubjectPage
// Assembly: Libraries.Models.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: E2FEBB82-23D5-440C-989A-623618BBF3BA
// Assembly location: C:\Users\me\.nuget\packages\libraries.models.web\1.0.22.1-beta05\lib\netstandard2.0\Libraries.Models.Web.dll
using Libraries.Models.Web.Interfaces;
using Libraries.Models.Web.Objects;
using Libraries.Models.Web.Page;
namespace Libraries.Models.Web.Subjects
{
public class SubjectPage : WebPage, ISubjectPage
{
public string Name { get; set; }
}
}
请注意,反编译文件中缺少“视频”字段。
我以前没有见过这种行为,那么为什么当我打包库时,它似乎忽略了一些类和字段?
回答我的问题,因为我已经找到了问题的原因。
使用 dotnet peek 调查我的库解决方案中生成的 Nuget 包后,我可以看到所有丢失的项目都存在,因此这一定是上传到 Nuget 服务器的内容。
然后我查看了 Nuget 包的存储位置
C:\Users\me\.nuget\packages\libraries.models.web
我注意到软件包版本的日期是九月份。 然后我想起之前有一个中止的开发,并且软件包已从 Nuget 服务器中删除,但显然不是从本地用户配置文件目录中删除!
我不知道这些包存储在本地,所以对我来说失败的原因是简单的用户错误或知识差距。
希望这个问题和答案可以帮助其他人。