Visual Studio中的构建解决方案、重新构建解决方案和清洁解决方案之间的区别是什么?

什么时候使用这些工具比较合适?


当前回答

Clean将清除bin/Debug文件夹中的工件。删除bin/Debug文件夹中的所有文件。

Build检查bin/Debug文件夹中的构件,如果需要,然后创建构件(同时检查构建时错误)。

重建=清洁+一次构建。这将首先删除bin/Debug文件夹中的所有文件,然后在bin/Debug文件夹中再次创建工件。

您可以通过打开并观察bin/Debug(或Release)文件夹,然后清理、构建和重建项目来确认这些操作。

其他回答

构建解决方案-构建解决方案将构建您的应用程序,构建有任何文件更改的项目的数量。并且它不清除任何现有的二进制文件,只是替换bin或obj文件夹中的更新程序集。

重建解决方案-重建解决方案将通过构建解决方案中可用的所有项目来构建您的整个应用程序,并清理它们。在构建之前,它会清除bin和obj文件夹中的所有二进制文件。

清洁解决方案-清洁解决方案只是清除bin和obj文件夹中的所有二进制文件。

生成解决方案只生成解决方案中已更改的项目,而不影响未更改的程序集,

ReBuild首先清理解决方案中的所有程序集,然后构建整个解决方案,而不管所做的更改。

清洁,简单地清洗溶液。

Build solution will perform an incremental build: if it doesn't think it needs to rebuild a project, it won't. It may also use partially-built bits of the project if they haven't changed (I don't know how far it takes this) Rebuild solution will clean and then build the solution from scratch, ignoring anything it's done before. The difference between this and "Clean, followed by Build" is that Rebuild will clean-then-build each project, one at a time, rather than cleaning all and then building all. Clean solution will remove the build artifacts from the previous build. If there are any other files in the build target directories (bin and obj) they may not be removed, but actual build artifacts are. I've seen behaviour for this vary - sometimes deleting fairly thoroughly and sometimes not - but I'll give VS the benefit of the doubt for the moment :)

(这些链接指向devenv.exe命令行开关,但它们的功能与菜单项相同。)

我有一个空白的解决方案BuildRebuildClean和三个类库模型,存储库,通知。

我在通知类库中使用模型和库。

然后:

生成解决方案增量生成,只编译已更改的文件。如果一个程序集没有变化, 它不会被重建。此外,它不会删除任何中间文件。 如果在模型库项目中修改一些代码,则BUILD解决方案。 在下面的屏幕截图中,参考DLL的时间戳,在Models和Notification库中更新了EXE。

重建解决方案删除所有编译文件和编译所有不考虑更改, 忽略之前做过的任何事情。 右键单击解决方案名称BuildRebuildClean。它所做的是删除所有的程序集, EXEs和引用文件再次编译。

清洁解决方案删除bin/obj目录下所有已编译的中间文件(即exe和dll)。

摘自此链接:

构建意味着只编译和链接已更改的源文件 从上次构建开始,而重新构建 意味着编译和链接所有源代码 文件,不管它们是否 改变与否。构建是常态 要做的事情,而且更快。有时 项目目标的版本 组件可能会不同步 重建是进行构建所必需的 成功的。在实践中,你永远不会 需要清洁。