如果 .NET MVC 应用程序在没有它的情况下运行良好,那么 "building" 的目的是什么?
What is the purpose of "building" a .NET MVC application if it runs fine without it?
我在 .NET Framework 中有一个简单的 MVC Web 应用程序。要 运行 它,我可以单击 Visual Studio 中的绿色箭头("play" 按钮),它会执行 "build" 并启动指向该应用程序的 Web 浏览器。
或者,我可以只使用适当的命令行选项启动 IIS Express,然后在浏览器中导航到 localhost:8080 和 运行 应用程序,而无需 "build"。
"building" Visual Studio 中的应用程序的目的是什么,如果没有它 运行 没问题?
简单的答案是 运行 没有构建步骤;你的假设是错误的。
但是,Visual Studio 会持续监控您的源文件并编译它们,例如能够在您键入时显示智能感知建议和编译器错误。这意味着实际上有基于您的源 某处 编译的二进制文件,也许只是不在您项目根目录下的 bin
文件夹中(某处可能在内存中,或者在磁盘上的一些缓存位置,具体取决于超出此问题范围的情况。
也很可能您之前已经构建了您的应用程序,从而在您的 bin
文件夹中生成了二进制文件,即使您这样做并不是为了 运行 应用程序紧接着。在任何一种情况下,如果你让它与 IIS Express 一起工作,那是因为它可以在某处找到编译的二进制文件,以及 运行 那些。
在您点击播放时 Visual Studio 显式重建您的应用程序的主要原因是确保您 运行 使用最新版本的代码。当然,每次启动调试器都会多花几秒钟,但与您试图追踪已在代码中修复但仍显示在 运行ning 应用程序,因为 运行ning 应用程序是一个过时的版本。 (这也使得诸如单步执行代码之类的事情变得不那么混乱,因为,同样,文件中的源代码将始终与 运行ning 应用程序同步。)
我在 .NET Framework 中有一个简单的 MVC Web 应用程序。要 运行 它,我可以单击 Visual Studio 中的绿色箭头("play" 按钮),它会执行 "build" 并启动指向该应用程序的 Web 浏览器。
或者,我可以只使用适当的命令行选项启动 IIS Express,然后在浏览器中导航到 localhost:8080 和 运行 应用程序,而无需 "build"。
"building" Visual Studio 中的应用程序的目的是什么,如果没有它 运行 没问题?
简单的答案是 运行 没有构建步骤;你的假设是错误的。
但是,Visual Studio 会持续监控您的源文件并编译它们,例如能够在您键入时显示智能感知建议和编译器错误。这意味着实际上有基于您的源 某处 编译的二进制文件,也许只是不在您项目根目录下的 bin
文件夹中(某处可能在内存中,或者在磁盘上的一些缓存位置,具体取决于超出此问题范围的情况。
也很可能您之前已经构建了您的应用程序,从而在您的 bin
文件夹中生成了二进制文件,即使您这样做并不是为了 运行 应用程序紧接着。在任何一种情况下,如果你让它与 IIS Express 一起工作,那是因为它可以在某处找到编译的二进制文件,以及 运行 那些。
在您点击播放时 Visual Studio 显式重建您的应用程序的主要原因是确保您 运行 使用最新版本的代码。当然,每次启动调试器都会多花几秒钟,但与您试图追踪已在代码中修复但仍显示在 运行ning 应用程序,因为 运行ning 应用程序是一个过时的版本。 (这也使得诸如单步执行代码之类的事情变得不那么混乱,因为,同样,文件中的源代码将始终与 运行ning 应用程序同步。)