在完整的.Net framework中是否支持msbuild/t:Pack?

在完整的.Net framework中是否支持msbuild/t:Pack?,msbuild,nuget,visual-studio-2017,Msbuild,Nuget,Visual Studio 2017,根据文档,msbuild现在似乎支持NuGet的两个特定目标:Pack和Restore。 我已经能够正确使用还原,但不能使用打包 错误MSB4057:项目中不存在目标“包” 它是传统的.Net项目支持的,还是仅仅是.Net核心的东西? 我还没有找到任何明确说明这一点的文件 关于所需的依赖项,我使用 PM> nuget help NuGet Version: 4.1.0.2450 usage: NuGet <command> [args] [options] Type 'NuG

根据文档,msbuild现在似乎支持NuGet的两个特定目标:
Pack
Restore
。 我已经能够正确使用
还原
,但不能使用
打包

错误MSB4057:项目中不存在目标“包”

它是传统的.Net项目支持的,还是仅仅是.Net核心的东西?
我还没有找到任何明确说明这一点的文件

关于所需的依赖项,我使用

PM> nuget help
NuGet Version: 4.1.0.2450
usage: NuGet <command> [args] [options] 
Type 'NuGet help <command>' for help on a specific command.


看来我搜索得不够。。。这篇博文只清楚地提到了.Net核心:

前面讨论的一些功能尚未完全支持 基于packages.config的项目,例如在 项目文件,直接从项目生成包,[…]。我们正在努力为客户提供全面的参考支持 这些项目类型。我们的目标是最终实现PackageReference 默认设置并远离所有其他格式


“基于SDK的”项目支持开箱即用。VS for.NET Framework库中没有使用此“新型csproj”的项目模板,但您可以创建.NET标准库项目,并手动将csproj文件中的
TargetFramework
属性从
netstandard1.6
更改为
net461
。请注意,用于这些类型项目的项目系统还不支持经典.net项目中的许多可用功能(如WinForms、Xaml、edmx的设计器)

生成的项目文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
  </PropertyGroup>
</Project>

net461

支持经典项目PackageReference的VS 2017 15.2版已经发布。但这并不能提供软件包支持。所以这里的关键是切换到新的csproj格式?因此,在VS默认支持这一点之前,没有必要通过破解来切换它,对吗?是的,新格式带来了NuGet属性的集成和属性编辑器。还有
NuGet.Build.Tasks.Pack
NuGet包,但如果不向csproj添加更多由“sdk风格”项目默认的属性,这可能“不够好”。但是如果您只创建“logic”nuget包,这已经得到了支持,只是没有它的模板。而且已经有多少库被构建了(例如Newtonsoft.Json),我在Azure相关的NuGet中看到过几次,我想知道它是如何工作的。现在看起来很清楚:我将坚持使用我以前的NUSPEC,因为我的解决方案包含类库项目,但也包含Asp.NETMVC和WebAPI。我不想在同一个解决方案中使用多种方法来管理NuGet定义。这很有意义。但是也应该支持引用经典项目中的“新型”csproj文件,因此您的web应用程序仍然应该能够引用此项目。
Microsoft Visual Studio Professional 2017 
Version 15.2 (26430.12) Release
VisualStudio.15.Release/15.2.0+26430.12
Microsoft .NET Framework
Version 4.6.01586
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
  </PropertyGroup>
</Project>