从自动生成输出目录停止Visual Studio 2017

时间:2018-09-11 22:00:14

标签: visual-studio msbuild

因此,我有一个包含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>

1 个答案:

答案 0 :(得分:-1)

  

现在在Visual Studio中打开sln文件,如果您看起来VS会自动生成这些文件夹,即使您尚未构建任何东西。我希望将其禁用,因为它只是生成未使用的垃圾文件夹。由于我们将props文件用于msbuild进行二进制放置,因此我们没有从默认的“ bin \ debug”

更新每个项目文件。

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

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

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

希望这会有所帮助。