代码之家  ›  专栏  ›  技术社区  ›  jason

为什么命名空间未包含在“nuget pack”之后的结果nuget包中,并将其包含在另一个项目中

  •  0
  • jason  · 技术社区  · 3 年前

    我有一个.net 6.0类库项目,它在根目录中有类文件,但也包含一个Models文件夹,其中包含在类库中声明的公共类。我尝试过在*.csproj级别使用通过nuget包创建的*.nupkg文件,以及在构建首选项时创建的文件,以便在每次构建时生成一个包。该包被创建为MyPackage。

    当我在另一个项目中包含“MyPackage”时,我可以访问根类,但命名空间MyPackage.Models似乎没有包含在内,即使它是项目的一部分。此外,xml文档文件似乎没有包含在内,因为在MyPackage根目录下调用类的任何方法时,我都没有看到任何注释包含在内。

    我刚开始使用我自己的nuget包,所以这可能是一个新手的错误,但我不确定我在这里做错了什么。

    有什么建议吗?

    0 回复  |  直到 3 年前
        1
  •  0
  •   Jingmiao Xu-MSFT    3 年前

    我做了一个测试来创建一个MyPackage包,并且可以正确地引用命名空间MyPackage.Models,这里是项目:

    enter image description here

    我在Method1.cs中添加了以下代码:

    namespace MyPackage.Models
    {
        public class Method1
        {
            public int Add(int a,int b)
            {
                return a + b;
            }
        }
    }
    

    它在测试中起作用:

    enter image description here

    也许你可以提供更多的信息来帮助重现这个问题。

        2
  •  0
  •   jason    3 年前

    问题是nuget包缓存问题。我不得不关闭我的解决方案,清除缓存,甚至重新启动我的机器。当我这么做的时候,一切都如我所料。

    在尝试之前,我创建了一个新的类库项目,并将以前项目中的文件复制到了这个项目中。当我为这个新的制作了一个nuget包时,一切都按预期进行。这证实了我的问题是缓存。