dotnet和msbuild中的包之间的区别

时间:2019-02-04 17:51:16

标签: c# .net .net-core msbuild

我使用的是VS2017的新SDK样式项目

在dotnet中,我可以使用以下命令进行打包:

      dotnet pack project.csproj     --no-dependencies  --no-restore --output c:\packages -p:TargetId=abc -p:configuration=release 

在msbuild中,我可以使用以下命令进行打包:

     msbuild project.csproj /t:pack -p:TargetId=abc -p:configuration=release 

如何使用msbuild设置dotnet --no-dependencies --no-restore --output的选项

1 个答案:

答案 0 :(得分:2)

  • --no-restore不需要翻译。如果您确实想还原,请将-restore(缩写为-r)传递给msbuild。
  • --no-build转换为-p:NoBuild=true
  • --no-dependencies转换为-p:RestoreRecursive=false(请注意,它实际上不需要与--no-restore一起使用)
  • --output转换为-p:PackageOutputPath=C:\some\path

请注意,诸如build之类的其他命令会将--no-dependencies转换为不同的内容:-p:BuildProjectReferences=false不会建立项目间引用,而您可能希望这样做。 / p>

从命令行参数到MSBuild参数的完整映射分布在dotnet / cli GitHub Repo中的一些源文件中:

NuGet目标支持的更多参数(可以在命令行或项目文件中设置)在NuGet pack and restore as MSBuild targets中记录。