Answers:
(这些链接指向devenv.exe命令行开关,但它们与菜单项的作用相同。)
.gitignore
文件更简单。但是根据答案,根据我的经验,Clean并不总是做得特别彻底。
生成解决方案:编译已更改的代码文件(DLL和EXE)。
重建:删除所有编译的文件,然后再次编译它们,而不管代码是否更改。
干净的解决方案:删除所有编译的文件(DLL和EXE文件)。
您可以观看此YouTube视频(Visual Studio Build vs. Rebuild vs. Clean(带有答案的C#面试问题)),其中我演示了这些区别,下面是直观的表示形式,可以帮助您更详细地分析它们。
Rebuild与(Clean + Build)之间的区别,因为围绕此似乎也有些混乱:
不同之处在于每个项目的生成和清理顺序发生的方式。假设您的解决方案有两个项目,“ proj1”和“ proj2”。如果您进行重建,它将花费“ proj1”,清理(删除)“ proj1”的编译文件并进行构建。之后,将使用第二个项目“ proj2”,清除“ proj2”的已编译文件并编译“ proj2”。
但是,如果您进行“清理”并构建,它将首先删除“ proj1”和“ proj2”的所有已编译文件,然后先构建“ proj1”,然后再构建“ proj2”。
取自此链接:
Build表示仅编译和链接自上次编译以来已更改的源文件,而Rebuild表示仅编译和链接所有源文件,无论它们是否已更改。构建是正常的事情,并且更快。有时项目目标组件的版本可能会不同步,因此必须进行重建才能使构建成功。实际上,您不需要清洁。
我只是认为Rebuild是先执行Clean,然后是Build。也许我错了...评论?
file reference
而不是一个项目,project reference
因此项目构建顺序不认识到它必须先构建某个项目,并且在安装过程中程序集不存在于应有的位置建立?
生成解决方案 – 生成所有已更改文件的程序集。如果装配体没有变化,则不会重建。也不会删除任何中间文件。
重建解决方案将清理,然后从头开始构建解决方案,而无需理会之前所做的任何事情
清洁解决方案将从bin / obj目录中删除所有编译的文件(即EXE和DLL)。
构建解决方案将构建解决方案中所有已更改的项目。无论如何,重建都会生成所有项目,干净的解决方案会删除所有临时文件,以确保下一个生成完成。
我认为人们遗漏的一件事是构建和清理都是基于Visual Studio对项目/解决方案的了解而执行的任务。我看到很多抱怨,Clean无法正常工作或留下剩余文件或不可信,实际上,实际上,您说它不可信的原因实际上使其变得更可信。
清除只会删除(清除)Visual Studio或编译器本身实际上创建的文件和/或目录。如果您复制自己的文件或从外部工具或源创建的文件/文件夹结构,则Visual Studio不会“知道它们存在”,因此,请勿触摸它们。
您能想象清理操作是否基本上执行了“ del *。*”?这可能是灾难性的。
Build对更改或必要的项目执行编译。
无论是否有更改或需要什么,Rebuild都会执行编译。
Clean会删除过去创建的文件/文件夹,但最初会保留所有与它无关的内容。
我希望这能对您有所帮助。
我有AA空白溶液BuildRebuildClean
和三个类库Models
,Repository
,Notification
。
我在类库中使用Models
和。Repository
Notification
然后:
Models
库项目中修改一些代码,则建立解决方案。在下面的屏幕快照中,请参考DLL的时间戳,EXE在Models
和Notification
库中的更新。BuildRebuildClean
。它的作用是删除所有程序集,EXE和引用的文件以再次编译。我所知道的是Clean并不会执行“ make clean”曾经做过的工作-如果我要清洁解决方案,我希望它删除obj和bin文件/文件夹,以便其生成就像是对源代码的全新签出。根据我的经验,尽管我经常发现“清理并生成或重建”仍会在已知可编译的源代码上产生奇怪的错误,并且需要手动删除bin / obj文件夹,然后才能生成。
构建解决方案只会构建在解决方案中进行了更改的项目,不会影响未更改的程序集,
ReBuild首先从解决方案中清除所有程序集,然后不管所做的更改如何构建整个解决方案。
清洁,只需清洁溶液即可。