msbuild / t:Pack是否支持完整的.Net框架?

时间:2017-06-14 14:12:30

标签: msbuild nuget visual-studio-2017

基于文档https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets,看起来msbuild现在支持NuGet的2个特定目标:PackRestore。 我已经能够正确使用Restore,但不能使用Pack

  

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

它是否支持传统的.Net项目,还是只支持.Net Core? 我找不到任何明确说明的文件。

关于所需的依赖关系,我正在使用

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

C:\Git>msbuild /version
Microsoft (R) Build Engine version 15.1.1012.6693
Copyright (C) Microsoft Corporation. All rights reserved.

15.1.1012.6693

使用

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

2 个答案:

答案 0 :(得分:3)

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

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

net461

答案 1 :(得分:1)

看起来我没有足够的Google ......这篇博文明确说明了.Net Core:http://blog.nuget.org/20170316/NuGet-now-fully-integrated-into-MSBuild.html

  

之前讨论的一些功能尚未得到完全支持   基于packages.config的项目,例如在中定义nuspec元数据   项目文件,直接从项目构建包,[...]。我们正在努力为您提供完整的PackageReference支持   这些项目类型。我们的目标是最终制作PackageReference   默认设置并远离所有其他格式。