C# 什么';这是';obj';NET中的目录?

C# 什么';这是';obj';NET中的目录?,c#,.net,C#,.net,.NET中“obj”目录的具体用途是什么?在编译过程中,“obj”文件夹用于存储临时对象文件和其他文件,以便创建最终二进制文件 “bin”文件夹是完整二进制文件(程序集)的输出文件夹。此外,我认为拥有它(并且在构建后不清理它)的原因是支持增量编译。如果您已经编译了100个类并更改了其中一个类,那么只需重新编译更改后的类的代码,并从新旧代码的混合中重新组装exe/dll,效率会更高 当然,增量编译要比这复杂得多——它必须跟踪所有内容,以便能够检测何时需要重新编译一个类,即使该类本身没有更改。(例如

.NET中“obj”目录的具体用途是什么?

在编译过程中,“obj”文件夹用于存储临时对象文件和其他文件,以便创建最终二进制文件

“bin”文件夹是完整二进制文件(程序集)的输出文件夹。

此外,我认为拥有它(并且在构建后不清理它)的原因是支持增量编译。如果您已经编译了100个类并更改了其中一个类,那么只需重新编译更改后的类的代码,并从新旧代码的混合中重新组装exe/dll,效率会更高


当然,增量编译要比这复杂得多——它必须跟踪所有内容,以便能够检测何时需要重新编译一个类,即使该类本身没有更改。(例如,如果类中出现新的重载,则可能需要重新编译某些调用方。)

obj文件的来源是什么?我问这个问题是因为我的Azure云服务项目打包了错误版本的
System.Runtime.dll
。请看。@ShaulBehr:我不知道你这里所说的“源”是什么意思,但恐怕我无法解释你的问题。我的意思是,Visual Studio如何决定将给定DLL的哪个版本复制到obj文件夹中?在我的例子中,如果工作者角色项目是指System.Runtime的v4.3.1,为什么云服务项目会将DLL的不同版本复制到它的obj文件夹中?@ShaulBehr:我不知道,恐怕-我没有做任何Azure项目。