在 .NET Core 项目中使用 MyGet 包进行编译时遇到问题

Trouble compiling using a MyGet package in .NET Core project

我创建了几个 MyGet 包并将其推送到我的源中。我已经在我的项目中成功引用了这些包。我可以看到 NuGet 包管理器中列出的包,我可以看到它们已在 Users[用户名].nuget\packages 中下载。事实上,当我删除 packages 文件夹中的那些文件夹并返回到我的解决方案中恢复包时,我看到这些文件夹再次被下载。当然,这些参考文献也列在我的 project.json 文件中。

到目前为止,一切看起来都不错。

然后我尝试从其中一个包中引用 class,但 Visual Studio 根本找不到它。它只是给我标准的 "type or namespace...does not exist" 错误。此外,我尝试在对象资源管理器中提取包以查看是否可以查看 classes,但它无法找到任何地方列出的包,而它可以看到所有其他 Nuget 包拉下来了。

我什至去我的 MyGet 提要下载了一个包并确保列出了所有 classes 和接口,果然,它们都在那里。

所以回顾一下 - 我的项目参考看起来不错。包装内部看起来不错。 VS 正在将包下载到 Users[user].nuget\packages。但是,我完全无法在我的代码中使用这些包。

我不知道这是否有所不同,但这是 VS 2015,我使用的是 .NET Core。

我该如何解决?

Solution Explorer showing that the 3 packages can't be expanded for more details.

请在 project.json 文件中添加以下脚本代码打包 .NET Core 包。

"scripts": {
"postcompile": [
  "dotnet pack --no-build --configuration %compile:Configuration%"
  ]
}

编译.NET Core 项目后,它会在\bin\debug 文件中生成.nupck 文件。然后请将此包上传到您的 NuGet 提要并将其安装到您的项目中。

如果我将 .NET Core 包与您使用 nuspec 文件的步骤打包在一起,我会遇到与您相同的问题。 .NET Core 工程不同于普通工程,是带project.json 的管理包。所以请用 project.josn 文件打包你的 .NET Core 包。