Build 为什么要在dotnet发布之前进行dotnet构建呢?

Build 为什么要在dotnet发布之前进行dotnet构建呢?,build,.net-core,Build,.net Core,好的。这似乎是我将要看到答案的问题类型 所以 在进行dotnet发布之前,为什么还要费心于dotnet构建 生成自动执行还原。酷 似乎publish会执行构建(除非您告诉它不要这样做)。所以如果你打算马上发布,为什么还要费心构建呢?为什么不一步到位地发布所有内容 为了进一步澄清 我是在一个基本场景中提问的,比如: dotnet构建-c发布MyProj dotnet发布-c发布-o/somedir MyProj 对正义 dotnet发布-c发布-o/somedir MyProj 他们似乎做

好的。这似乎是我将要看到答案的问题类型

所以

在进行
dotnet发布之前,为什么还要费心于
dotnet构建

生成
自动执行
还原
。酷

似乎
publish
会执行
构建
(除非您告诉它不要这样做)。所以如果你打算马上发布,为什么还要费心构建呢?为什么不一步到位地发布所有内容

为了进一步澄清

我是在一个基本场景中提问的,比如:

  • dotnet构建-c发布MyProj
  • dotnet发布-c发布-o/somedir MyProj
对正义

  • dotnet发布-c发布-o/somedir MyProj

他们似乎做了同样的事情。

你是对的,
dotnet发布
自动完成了
dotnet构建
已经完成的所有工作。在大多数情况下,正如问题中提到的场景一样,这意味着不需要额外的
dotnet构建

请注意,您可以
dotnet构建
解决方案,但只应
dotnet发布
单个项目文件。发布解决方案可能会导致意外结果(从覆盖不同版本的文件到发布配置中的库项目,这些配置不应发布到与引用应用程序相同的输出目录等)

随着时间的推移,有一个社区要求允许发布和测试,而无需重新构建应用程序,因为一些用户觉得只发布具有相同二进制文件的应用程序更舒服,这些二进制文件已经过测试,因此他们的构建脚本可以如下所示:

  • dotnet构建.sln-c版本
  • dotnet测试-c版本--无构建
  • dotnet发布\app.csproj--no build-c版本

  • 我不会直接回答你的问题,我会把这个问题留给知道区别的人,如果有区别的话。但是,如果您有一个命令可以做17件事,而您还有17个其他命令可以做1件事,那么一次执行这17个命令会给您带来更好的处理问题的机会,因为您需要处理的这17个命令中的每一个都有一些问题,然而,知道这是由微软建立的,可能会有一些主要的区别,就像nuget软件包一样。有了nuget软件包,您就有了
    nuget安装
    nuget还原
    dotnet还原
    msbuild/t:restore;xxx
    所有这些似乎都做了不同的事情,您可能需要其中的一些来启动构建。那么谁能说出来呢。如果
    dotnetpublish
    符合您的要求,我会说忽略文档中告诉您的任何内容,随它去做。