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

时间:2016-07-06 12:53:23

标签: .net visual-studio nuget .net-core

我正在尝试使用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 个答案:

答案 0 :(得分:0)

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

第1步:设置本地NuGet源。如果您还没有NuGet CLI,则需要creating a local NuGet feed的副本。按照please click here...上的说明进行操作:基本上,创建一个空文件夹。我选择了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-functions.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配置文件中,以便在每个控制台窗口中都可用:

> notepad $profile

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

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

第3步:将本地资源添加到NuGet作为Feed。

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

第4步:利润!

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

> dotnet pack
> Nuget-AddAllLocal