根据文档https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets,它看起来像msbuild现在支持NuGet的两个特定目标:Pack
和Restore
。 我已经能够正确使用Restore
,但不能使用Pack
。msbuild/t:Pack是否支持完整的.Net框架?
错误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.
而且
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
所以这里的关键是要切换到新的csproj格式?所以,直到VS支持** AS DEFAULT **为止,没有必要通过黑客来切换,对吧? – GGirard
是的新格式为NuGet属性带来了集成和属性编辑器。还有'NuGet.Build.Tasks.Pack' NuGet包,但如果不向“sdk-style”项目默认的csproj添加更多属性,这可能无法“足够好”。 但是,如果你只创建了“逻辑”nuget包,这已经被支持了,它只是没有模板。并且它已经创建了多少个库(例如Newtonsoft.Json) –
我在Azure相关的NuGet中看到了它几次,并且想知道它是如何工作的。现在看起来很清楚:我会坚持使用旧的nuspecs,因为我的解决方案包含类库项目,但也包含Asp.Net MVC和WebAPI。我不想有多种方式来管理相同解决方案中的NuGet定义。 – GGirard