欢迎。这似乎是我要面对面看到答案的问题类型。
所以...
为什么在做dotnet build
之前先打扰dotnet publish
?
build
自动执行restore
。凉。
似乎publish
做build
(除非您告诉它不要这样做)。所以...如果您要在之后发布,为什么还要花时间进行构建?为什么不只是发布而一切都一步一步完成?
为进一步澄清...
我在一个基本的情况下问:
dotnet build -c Release MyProj
dotnet publish -c Release -o /somedir MyProj
与公正
dotnet publish -c Release -o /somedir MyProj
他们似乎在做同样的事情。
答案 0 :(得分:2)
您是对的,dotnet publish
自动执行dotnet build
已经执行的所有操作。在大多数情况下(如您的问题中提到的那样),这意味着不需要额外的dotnet build
。
请注意,您可以dotnet build
个解决方案,但只能dotnet publish
个单独的项目文件。发布解决方案可能会导致意外结果(从覆盖不同版本的文件到发布配置中的库项目,这些配置不应与引用应用程序一起发布到同一输出目录中,等等)
随着时间的流逝,有一个社区要求允许发布和测试,而不必重新构建应用程序,因为有些用户只使用经过测试的相同二进制文件发布应用程序就感到更加自在,因此其构建脚本如下所示:< / p>
dotnet build the.sln -c Release
dotnet test -c Release --no-build
dotnet publish the\app.csproj --no-build -c Release