首页 文章

Visual Studio中的构建解决方案,重建解决方案和清洁解决方案之间的区别?

提问于
浏览
941

Visual Studio中的Build Solution,Rebuild Solution和Clean Solution有什么区别?

什么时候适当使用这些中的每一个?

12 回答

  • 0

    所有我知道的是一个Clean不会做"make clean"曾经做过的事情 - 如果我清理一个解决方案我会期望它删除obj和bin文件/文件夹,这样它的构建就像是一个新的结论源 . 根据我的经验,虽然我经常发现清理和构建或重建仍会在编译已知的源上产生奇怪错误的时间,并且需要手动删除bin / obj文件夹,然后它将构建 .

  • 378

    Build Solution - 构建已更改文件的所有程序集 . 如果程序集没有更改,则不会重新构建 . 也不会删除任何中间文件 .

    最常用的 .

    Rebuild Solution - 无论更改如何都重建所有程序集,但保留中间文件 .

    当您注意到Visual Studio未将更改合并到最新程序集中时使用 . 有时Visual Studio确实会出错 .

    Clean Solution - 删除所有中间文件并重建所有程序集,无论更改如何

    当所有其他方法都失败时使用,您需要清理所有内容并重新开始 .

  • 137

    构建解决方案将在解决方案中构建已更改的任何项目 . 无论如何,Rebuild都会构建所有项目,干净的解决方案会删除所有临时文件,确保下一个构建完成 .

  • 12

    Build solution

    这将执行增量构建 . 换句话说,它只会构建已更改的代码文件 . 如果他们没有改变那些文件将不会被触及 .

    Rebuild solution

    这将删除所有当前编译的文件(即exe和DLL),并将从头开始构建所有内容,无论文件中是否有代码更改 .

    Clean solution menu

    此菜单将从bin / obj目录中删除所有已编译的文件(即EXE和DLL) .

    Rebuild = Clean + Build

  • 770

    我只想到Rebuild执行Clean然后是Build . 也许我错了......评论?

  • 3

    我认为人们遗漏的一个主要问题是Build和Clean都是基于Visual Studio对您的项目/解决方案的了解而执行的任务 . 我看到很多抱怨说Clean不起作用或留下剩余的文件或者不值得信任,事实上,你说它不值得信任的原因实际上使它更值得信赖 .

    Clean只会删除(干净)Visual Studio或编译器本身实际创建的文件和/或目录 . 如果您复制自己的文件或文件/文件夹结构是从外部工具或源创建的,则Visual Studio不会“知道它们存在”,因此不应触及它们 .

    你能想象如果Clean操作基本上执行了“del * . *”吗?这可能是灾难性的 .

    Build 对已更改或必要的项目执行编译 .

    Rebuild 执行编译,无论更改或必要的是什么 .

    Clean 删除它过去创建的文件/文件夹,但最初保留了与之无关的任何内容 .

    我希望这有点阐述并有所帮助 .

  • 1

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

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

    Clean Solution - Clean solution只是清除bin和obj文件夹中的所有二进制文件 .

  • 6
    • Build solution将执行增量构建:如果它认为不需要重建项目,则会更改't. It may also use partially-built bits of the project if they haven' t(我不知道它需要多长时间)

    • Rebuild solution将清理然后从头开始构建解决方案,忽略之前完成的任何事情 . 这和"Clean, followed by Build"之间的区别在于Rebuild将清理然后构建每个项目,一次一个,而不是清理所有项目,然后构建所有项目 .

    • Clean solution将从先前版本中删除构建工件 . 如果构建目标目录(bin和obj)中有任何其他文件,则可能不会删除它们,但实际的构建工件是 . 我've seen behaviour for this vary - sometimes deleting fairly thoroughly and sometimes not - but I'将给予VS当前怀疑的好处:)

    (链接指向devenv.exe命令行开关,但它们与菜单项的作用相同 . )

  • 3

    构建解决方案:编译已更改的代码文件(DLL和EXE) .

    重建:删除所有已编译的文件并再次编译它们,无论代码是否已更改 .

    清洁解决方案:删除所有已编译的文件(DLL和EXE文件) .

    您可以看到此YouTube视频(Visual Studio Build vs. Rebuild vs. Clean (C# interview questions with answers)),其中我已经演示了差异,以下是可视化表示,可帮助您分析相同内容详情 .

    Build vs Rebuild

    Rebuild与(Clean Build)之间的区别,因为这周围似乎也有一些混乱:

    不同之处在于每个项目的构建和清理顺序的发生方式 . 假设你的解决方案有两个项目,“proj1”和“proj2” . 如果你进行重建,它将采用“proj1”,清理(删除)“proj1”的编译文件并构建它 . 之后它将采用第二个项目“proj2”,清理“proj2”的编译文件并编译“proj2” .

    但是如果你做“干净”并构建“,它将首先删除所有编译文件”proj1“和”proj2“,然后它将首先构建”proj1“,然后是”proj2“ .

    Rebuild Vs Clean

  • 7

    构建解决方案仅构建解决方案中已更改的项目,并且不会影响未更改的程序集,

    ReBuild首先清除解决方案中的所有程序集,然后构建整个解决方案,无论所做的更改如何 .

    清洁,只需清洁解决方案 .

  • 13

    取自this link

    Build意味着仅编译和链接自上次构建以来已更改的源文件,而Rebuild意味着编译和链接所有源文件,无论它们是否更改 . 构建是正常的事情并且更快 . 有时,项目目标组件的版本可能会不同步,并且必须进行重建才能使构建成功 . 在实践中,您永远不需要清洁 .

  • 29

    Build Solution - 构建已更改文件的所有程序集 . 如果程序集没有更改,则不会重新构建 . 也不会删除任何中间文件 .

    Rebuild solution 将清理然后从头开始构建解决方案,忽略之前完成的任何事情

    Clean Solution 将从bin / obj目录中删除所有已编译的文件(即EXE和DLL) .

相关问题