我在整理我的项目。我找到了删除对象文件夹的方法,添加了:%TEMP%
在我的项目里。但我想以某种方式使这个全局设置,或自动删除我的obj脏后,一个构建。有办法吗?
发布于 2011-10-04 16:47:54
我个人喜欢在我的项目中有一个特定的Output文件夹,我把所有编译的文件都放在这里。
在构建后事件中,我有以下命令行。
copy "$(TargetPath)" "$(SolutionDir)\Output\$(TargetFileName)"这将将编译后的文件复制到解决方案中的输出目录中。您需要将此添加到解决方案中的所有项目中。
如果您有任何也需要复制的依赖项,您也可以添加类似的内容。
copy "$(ProjectDir)Dependencies\Language.xml" "$(SolutionDir)\Output\Extensions\Language.xml"编辑
您可以尝试以下操作,先复制文件,然后完成后删除对象文件夹。
copy "$(TargetPath)" "$(SolutionDir)\Output\$(TargetFileName)"
rd /s /q "$(ProjectDir)\obj"EDIT2用截图来说明。:)
这就是编译项目后我的对象文件夹通常的样子。

这是使用上面的命令编译它之后的处理方式。如您所见,Visual在事件发生后重新创建文件夹,但文件夹为空。

您可能需要再次检查是否正在使用提升的权限运行Visual。为此,只需右键单击Visual并选择"Run as Administrator"。
发布于 2011-10-07 18:39:20
你在使用源代码管理吗?
这句话听起来好像你没有:
在归档过程中,这些都是不需要的兆字节。
(“归档”听起来有点像定期将整个项目文件夹复制到类似backup_yyyymmdd的内容)
如果您没有使用源代码管理,您应该明确地考虑开始使用它。
除了一般的优点(例如,具有日期和注释的更改历史.)之外,它还为obj文件夹中的问题提供了一个现成的解决方案:
所有优秀的源代码管理软件都支持忽略您可以定义的特定文件或文件夹(忽略意味着:它们永远不会被提交到源存储库,甚至在更改的文件列表中都看不到它们,即使在被更改时也是如此)。
例如,在汞 (我使用的)中,忽略设置保存在主文件夹中名为.hgignore的文件中(Git有相同的名称,只是称为.gitignore)。
所有Visual项目的默认.hgignore文件如下所示:
syntax: glob
bin
obj
*.suo
*.user第一行属于Mercurial的忽略语法,其余的是要忽略的设置。
您可以看到,bin和obj文件夹是ignored...and,不管它们在哪个子文件夹中都会被忽略!
因此,我不必关心obj文件夹的实际位置,也不必在每次构建解决方案时手动删除它们。在我的源代码管理历史中,它们根本不存在。
另外,我对富士关于将所有内容放在一个输出文件夹中的答案也有不同的看法:
我也喜欢这样做,但我更喜欢在Visual的项目设置中更改输出文件夹,而不是使用构建后事件。
默认输出文件夹是:
bin\Debug\bin\Release\我把它们改为:
..\build\Debug\..\build\Release\这会将所有内容编译到build文件夹的子文件夹中,该文件夹与.sln文件处于相同的级别(意思是:解决方案中的所有项目都直接编译到同一个文件夹中)。
它还减少了编译时间,因为Visual编译后不需要复制所有依赖项(因为所有都位于同一个文件夹中的)。
(我这么做主要是因为编译时间,因为我忽略了bin和obj文件夹,就像上面描述的那样,所以我不关心它们的实际位置)
https://stackoverflow.com/questions/7651238
复制相似问题