通过将BuildPackage
属性为您的项目文件是记录/透明(见下文)创建你的包,但的NuGet队no longer recommends使用添加对属性的支持机制,“MSBuild的集成包还原”:
在NuGet 2.7之前,MSBuild集成包恢复方法是 使用和推广。尽管这种方法仍然可用,但NuGet 团队建议使用“自动软件包还原”和命令行代替。
相应地,在3.0版的NuGet Visual Studio扩展中,“启用NuGet包恢复”上下文菜单项will be removed。
正如您发现的那样,BuildPackage
是在您执行“启用NuGet包恢复”时,Visual Studio添加到您的解决方案中的.nuget\NuGet.targets
MSBuild文件中定义的目标。
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(BuildCommand)"
Condition=" '$(OS)' != 'Windows_NT' " />
<Exec Command="$(BuildCommand)"
LogStandardErrorAsError="true"
Condition=" '$(OS)' == 'Windows_NT' " />
</Target>
Exec
任务调用cmd.exe; $(BuildCommand)
是在同一文件中定义的属性:您的解决方案目录中
<BuildCommand>
$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols
</BuildCommand>
$(NuGetCommand)
将评估为.nuget\NuGet.exe
。
因此,将来虽然自动添加这些msbuild节点将不被支持,但您可以自己将它们添加到项目中或使用其他方法来执行完全相同的(完全支持的)命令行nuget pack
。
这不是一个答案,更像是问题的延伸。 –
你是对的,我应该添加它作为评论。我羞于垂头。 – user3723367