我对视觉工作室中构建和发布之间的区别感到有些困惑。
构建程序和发布程序有什么区别?
答案 0 :(得分:16)
Build将源代码编译成(希望)可运行的应用程序。 Publish采用该可运行的应用程序并将其放在某个地方供其他人运行。您的混淆可能来自这样一个事实:Publish也会在认为需要时构建应用程序(例如,如果有源代码更改)。
答案 1 :(得分:9)
在VS中构建和发布项目是完全不同的事情。 build 进程,调用编译项目的代码并将二进制结果存储到DLL中。您可以在项目根目录下的\ bin \ debug \ folder或\ bin \ release \文件夹下找到它们。这取决于您是否在调试或发布模式下构建。这些DLL存储应用程序的二进制数据,可以引用到其他项目中。 发布进程始终位于构建过程之后。让我们假设您有一个ASP.NET应用程序。如果要使用项目,将Web应用程序构建到DLL中将不够用,因为您需要将Web应用程序托管到将成为IIS或ASP.NET开发服务器的Web服务器中。它会托管您的应用程序以供客户端实体访问。基本上,您可以发布Web应用程序和Web服务。
答案 2 :(得分:5)
针对.NET Framework应用程序与.NET Core应用程序的构建和发布之间存在一些显着差异:
构建.NET Framework
应用程序将生成与发布相同的文件。它将创建所有依赖项作为二进制文件,包括外部依赖项(例如,NuGets)。因此,dotnet构建is
的产品准备好转移到另一台机器上运行
正在构建.NET Core
应用程序,如果项目具有第三方依赖项(例如来自NuGet的库),则会从NuGet缓存中解析它们,并且不适用于项目的构建输出。因此,dotnet构建isn't
的产品准备好转移到另一台机器上运行。您需要运行发布以将所有第三方依赖项作为二进制文件输出到输出文件夹中。