通过将BuildPackage
属性添加到项目文件来创建包已记录/透明(见下文),但 NuGet 团队不再建议使用添加对该属性的支持的机制“MSBuild-Integrated Package Restore”:
在 NuGet 2.7 之前,使用和推广了 MSBuild 集成包还原方法。虽然这种方法仍然可用,但 NuGet 团队建议改用 Automatic Package Restore 和 Command-Line Package Restore。
相应地,在 3.0 版本的 NuGet Visual Studio 扩展中,“启用 NuGet 包还原”上下文菜单项将被移除。
如您所见,如果您执行“启用 NuGet 包还原”,则 Visual Studio 添加到您的解决方案中的 MSBuild 文件中BuildPackage
定义的目标。.nuget\NuGet.targets
<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
。