C# dotnet和msbuild中的包之间的差异

C# dotnet和msbuild中的包之间的差异,c#,.net,.net-core,msbuild,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 project.csproj /t:pack -p:TargetId=abc -p:configuration=relea

我使用VS2017的新SDK风格项目

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

      dotnet pack project.csproj     --no-dependencies  --no-restore --output c:\packages -p:TargetId=abc -p:configuration=release 
     msbuild project.csproj /t:pack -p:TargetId=abc -p:configuration=release 
在msbuild中,我可以使用以下命令进行打包:

      dotnet pack project.csproj     --no-dependencies  --no-restore --output c:\packages -p:TargetId=abc -p:configuration=release 
     msbuild project.csproj /t:pack -p:TargetId=abc -p:configuration=release 
如何使用msbuild设置dotnet
--无依赖项--无恢复--输出的选项
  • --无恢复
    不需要翻译。如果确实要还原,请将
    -restore
    (缩写
    -r
    )传递到msbuild
  • --no build
    转换为
    -p:NoBuild=true
  • --no dependencies
    转换为
    -p:RestoreRecursive=false
    (请注意,这实际上不需要与
    --no restore
    一起使用)
  • --output
    转换为
    -p:PackageOutputPath=C:\some\path
  • 请注意,其他命令,如
    build
    会将
    --无依赖项
    转换为其他命令:
    -p:BuildProjectReferences=false
    ,它不会生成项目到项目的引用,这可能是您想要的

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

    • 包含主
      pack
      命令参数
    • 其中的一些。都用过了
    • 因为它是一个支持隐式还原的命令,所以它使用来自的还原选项

    NuGet目标支持的更多参数(您可以从命令行或项目文件中设置)记录在。

    中,msbuild似乎在打包时恢复并重新生成。如何停止此操作,或者我应该使用dotnet pack?编辑以同时显示
    -p:BuildProjectReferences
    <代码>--没有依赖项
    对不同的命令执行不同的操作(是的,这太令人困惑了)。我也忘了
    ——没有bulid
    msbuild
    不会还原,除非使用
    -t:restore
    -r
    /
    -restore
    调用。您必须查看构建日志,以查看在构建期间调用了哪些目标