dotnet pack 输出和 Visual Studio 的本地包源

dotnet pack ouput and Visual Studio's local package source

我正在尝试使用 dotnet pack 创建 NuGet 包并将其复制到用作 Visual Studio 中 NuGet 源的 NuGet 包文件夹。在 dotnet 之前,我使用 dnu pack 创建 NuGet 包。此命令创建了项目版本的文件夹,其中包含 lib 文件夹、.nuspec.nupkg.nupkg.sha512 文件。

引入dotnet时,我迁移到它,打包后我只有两个文件,.nupkg.symbols.nupkg。如果我将它作为 NuGet 源复制到 visual studio 中使用的文件夹,它们将无法被识别。

我错过了什么?我目前使用的是 .NET Core 的 1.0.0-preview3-003171 版本。

以下是我在开发环境中本地处理包的方式:

第 1 步:设置本地 NuGet 源。您需要 NuGet CLI if you don't already have it. Follow the instructions on creating a local NuGet feed 的副本:基本上,创建一个空文件夹。我选择了C:\Users\Nate\Documents\LocalNuget.

步骤 2:使用 nuget add [file] -source [folder] 将包添加到本地源。我添加了一个名为 local_nuget_path 的环境变量,它指向该文件夹,这样我就不必一直输入它了:

> setx local_nuget_path "C:\Users\<you>\Documents\LocalNuget"

为了更加方便,我编写了一个简单的 PowerShell cmdlet 来自动添加包:

nuget 函数。ps1

Function Nuget-AddLocal {
  Param([string]$file)
  nuget add $file -Source $env:local_nuget_path
}

Function Nuget-AddAllLocal {
  Param([string]$path)

  Get-ChildItem $path -Recurse -Filter *.nupkg | `
  Foreach-Object {
    Nuget-AddLocal $_.FullName
  }
}

将此添加到您的 PowerShell 配置文件中,以便在每个控制台中都可用 window:

> notepad $profile

将此行添加到profile.ps1(替换文件的真实路径):

. C:\Users\<you>\Documents\nuget-functions.ps1

步骤 3:将本地源作为提要添加到 NuGet。

> nuget sources add -Name Local -Source $env:local_nuget_path

第 4 步:获利!

通过两个简单的步骤生成包并将它们添加到您的本地源:

> dotnet pack
> Nuget-AddAllLocal