【问题标题】:Why is a Namespace not included in resulting nuget package after 'nuget pack' and including it in another project为什么名称空间不包含在 \'nuget pack\' 之后的结果 nuget 包中并将其包含在另一个项目中
【发布时间】:2022-11-16 02:28:29
【问题描述】:
我有一个 .net 6.0 类库项目,它在根目录中有类文件,但也包含一个模型文件夹,其中包含在类库中声明的公共类。我试过在 *.csproj 级别使用通过 nuget pack 创建的 *.nupkg 文件,以及在每次构建时生成包的构建首选项时创建的文件。该包被创建为 MyPackage。
当我在另一个项目中包含“MyPackage”时,我可以访问根类,但名称空间 MyPackage.Models 似乎并未包含在内,即使它是项目的一部分。此外,似乎没有包含 xml 文档文件,因为在 MyPackage 根目录下调用类上的任何方法时,我没有看到我的 cmets 被包含在内。
我刚开始使用我自己的 nuget 包,所以这可能是一个菜鸟错误,但我不确定我在这里做错了什么。
有什么建议吗?
【问题讨论】:
标签:
visual-studio
build
nuget
.net-6.0
nuget-package
【解决方案1】:
我做了一个测试来创建一个 MyPackage 包,并且可以正确引用命名空间 MyPackage.Models,这是项目:
我在 Method1.cs 中添加此代码:
namespace MyPackage.Models
{
public class Method1
{
public int Add(int a,int b)
{
return a + b;
}
}
}
它在测试中有效:
也许您可以提供更多信息以帮助重现问题。
【解决方案2】:
问题是 nuget 包缓存问题。我不得不关闭我的解决方案,清除缓存,甚至重新启动我的机器。当我这样做时,事情如我所料。
在我尝试这个之前,我创建了一个新的类库项目并将文件从之前的项目复制到这个项目中。当我为这个新包制作一个 nuget 包时,一切都按预期进行。这为我证实了问题出在缓存上。