VisualStudio:如何将 obj 文件夹保存到其他地方

问题描述 投票:0回答:6

有谁知道如何告诉 VS(2008) 在构建解决方案时保存 obj 文件夹的位置?我们让它将 bin 文件夹保存到另一个路径,以保持源文件文件夹较小(即可通过电子邮件发送),但找不到任何方法告诉它对 obj 执行相同的操作...

visual-studio build-process
6个回答
87
投票

使用项目文件中的

BaseIntermediateOutputPath
属性(
.csproj
.vbproj
等),如 http://msdn.microsoft.com/en-us/library/bb629394.aspx 中所述。您必须使用文本编辑器手动编辑 XML 文档,然后在 Visual Studio 中重新加载它。它可能仍会创建
obj
文件夹(这是一个已知的错误),但会将其留空并将实际的
obj
文件放入您指定的文件夹中。


28
投票
  1. 您可以将其添加到项目文件中的标签下面:

    <IntermediateOutputPath>..\Whatever\obj\</IntermediateOutputPath>
    
  2. VS 仍会创建 obj 文件夹,因此每次构建后都必须将其删除。这可以通过将以下脚本放入 VS 中的构建后部分来完成:

    rd "$(ProjectDir)obj" /S /Q
    

5
投票

你使用版本控制吗?如果你这样做,还有一个替代方案:

您可以从版本控制中排除 bin/ 和 obj/ 并检查您的项目而不是通过电子邮件发送。如果您使用Subversion,您还可以导出您的项目并通过电子邮件发送导出和压缩的文件夹。


1
投票

它是项目设置的Properties > General下的Output Directory

编辑:本机 C++ 项目(我正在使用)和基于 CLR 的项目(这可能是 OP 所指的)的项目设置之间似乎存在差异。


0
投票

在 Visual Studio 2013 中,这是在项目“配置属性/常规/中间目录”中指定的。


0
投票

我想对一些现有答案稍作调整,以便您的驱动器盘符可以是动态的:

<BaseIntermediateOutputPath>$(ProjectDir.Substring(0,2))\Publish\Web\obj\</BaseIntermediateOutputPath>

这很有用,因为如果您对驱动器号进行硬编码,并且在没有该驱动器号的计算机上打开项目,Visual Studio 将自动修改您的项目文件以使用您的用户有权访问的临时位置。通过使用

$(ProjectDir)
变量的前 2 个字符动态选择当前驱动器盘符,可以避免此问题。

© www.soinside.com 2019 - 2024. All rights reserved.