首页 > 解决方案 > 从自动生成输出目录停止 Visual Studio 2017

问题描述

因此,我有一个包含 70 个项目的解决方案,我更新为使用 Directory.build.props 文件来使用单个 bin 文件夹来使我们的 CI 流程更干净。效果很好,现在一切都在 1 个位置

但现在的问题是,当我打开 Visual Studio 2017 时,它会创建一堆额外的项目文件夹,现在这些文件夹永远不会被使用。无论如何要禁用它?它只是让人们感到困惑,并且把每个人的开发仓库都弄得乱七八糟。

例子:

%sourceroot%\bin\release\ (这是所有项目愉快地合并的地方)

%sourceroot%\bin\project1Neverused\(不想要的文件夹只会让我的开发箱变得混乱)

%sourceroot%\bin\project2neverUsed\

%sourceroot%\bin\project1Neverused\

%sourceroot%\bin\project2neverUsed\

这是我的 Directory.build.props 文件:

<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <SolutionDir>$(MSBuildThisFileDirectory)</SolutionDir> <OutputPath>$(SolutionDir)bin\$(Configuration)\$(MSBuildProjectName)</OutputPath> <OutDir>$(OutputPath)</OutDir> </PropertyGroup> </Project>

标签: visual-studiomsbuild

解决方案


现在在 Visual Studio 中打开 sln 文件,如果你看起来 VS 会自动生成这些文件夹,即使你还没有构建任何东西。我希望禁用它,因为它只是生成未使用的垃圾文件夹。由于我们使用 msbuild 的 props 文件来进行 binplace,因此我们没有从默认的“bin\debug”更新每个项目文件

是的,默认情况下,Visual Studio 将bin/obj在您创建新项目/解决方案时创建这些文件夹。似乎没有直接设置来阻止 Visual Studio 生成这些文件夹。

作为一种解决方法,您可以尝试在Directory.build.props文件中添加删除任务以删除这些文件夹:

  <Target Name="CleanFolder" AfterTargets="Build">
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <RemoveDir Directories="$(ProjectDir)bin" />
  </Target>

希望这可以帮助。


推荐阅读