如何将bin和obj目录重定向到其他位置

use*_*719 17 c# msbuild visual-studio

有没有办法告诉visual studio为binobj目录使用不同的位置.例如,如果我的项目位于c:\ my\myprojects.csproj中,我如何将obj和bin目录放在d:\ otherdirectory\bind:\ otherdirectory\_ obj中.Visual Studio项目选项仅提供重定向bin目录,而不是obj目录.

此外,红利问题:我可以使用环境变量,而不是完整或相对路径?

这可能吗?

谢谢

Sac*_*hag 15

请参阅此文章,并在.proj文件中使用节点BaseOutputPath(For Bin文件夹)和 BaseIntermediateOutputPath(For Obj文件夹).

以下是相对于bin修改调试和释放文件夹的方法 -

在"解决方案资源管理器"中,选择要在其上配置构建参数的C#项目.

接下来,从Visual Studio菜单栏中选择Project - > Properties.将为您的项目显示"属性页"对话框.

选择要更改的配置(发布/调试),然后展开左侧窗格中的"配置属性"节点.选择Studio放置在"输出"属性表的"输出路径"属性中.

请注意,输出路径是针对每种构建配置单独指定的,并且在一个配置上设置它不会将其设置在所有剩余的配置上.

原始资料来源 - http://www.eggheadcafe.com/software/aspnet/32040244/how-to-change-the-obj-folder.aspx

  • 最后的链接已损坏(*“您请求的页面已删除。”*)。 (2认同)

Yol*_*ola 10

要将obj目录从代码库移到另一个公共文件夹,您可以执行以下操作。Directory.Build.props使用以下内容在解决方案的根目录中创建:

<Project>
  <PropertyGroup>
    <BaseIntermediateOutputPath>$(SolutionDir)\_Obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

要使公共obj目录中的文件夹结构与解决方案中的文件夹结构相同,您可以在解决方案的每个子文件夹中创建具有相同和相似内容的文件。例如,如果您有Algorithms包含多个项目的子文件夹,则可以将包含以下内容的文件放入其中:

<Project>
  <PropertyGroup>
    <BaseIntermediateOutputPath>$(SolutionDir)\_Obj\Algorithms\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

使用BaseOutputPathbin文件夹中。

  • 在过度使用此设置之前删除所有旧的 bin 和 obj 目录,否则会出现编译器错误 (2认同)