为什么我的.exe同时存放在\bin\Debug和\obj\Debug?

Why is my .exe deposited in both \bin\Debug and \obj\Debug?

在我的 VS 2013 C# Windows Forms 应用程序中,它的 "issue" (.exe) 出现在 \bin\Debug 文件夹和 \obj\Debug 文件夹中。相同的日期,相同的大小。为什么会输出到两个地方?为什么有必要?

obj\Debug 是 "working" 文件夹,用于 csc.exe(.NET 编译器)的输出。编译文件后,它会被复制到 "output directory",默认情况下是 bin\Debugbin\Release.

您可以通过编辑项目属性来更改输出文件夹,据我所知您不能更改编译器工作目录(但这并不意味着不能这样做)。

Ms​​build 有输出文件夹参数(bin/debug)以及 IntermediateOutputPath(和 BaseIntermediateOutputPath)

输出通常是您的 bin 文件夹,而 IntermediateOutputPath 指向您的 obj 文件夹,该文件夹在生成最终二进制文件之前用于临时存储。查看 common ms build properties 了解更多信息。