C# 有没有办法重定向在.NET核心项目的构建期间创建的所有文件夹

C# 有没有办法重定向在.NET核心项目的构建期间创建的所有文件夹,c#,.net,visual-studio,.net-core,C#,.net,Visual Studio,.net Core,无论何时创建.NET核心项目,都会在构建期间创建“bin”和“obj”文件夹。有没有办法重定向“obj”文件夹。我在.csproj中使用了以下内容,但没有帮助 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.1</TargetFramework

无论何时创建.NET核心项目,都会在构建期间创建“bin”和“obj”文件夹。有没有办法重定向“obj”文件夹。我在.csproj中使用了以下内容,但没有帮助

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    <OutputPath>C:\Temp</OutputPath>
    <AssemblyName>ConsoleApp</AssemblyName>
    <IntermediateOutputPath>$(OutputPath)</IntermediateOutputPath>
    <OutDir>$(OutputPath)</OutDir>
 </PropertyGroup>

 <Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="'$(OS)' == 'Windows_NT'">
   <Exec Command="rmdir /S /Q obj" />
 </Target>

 <Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="'$(OS)' != 'Windows_NT'">
   <Exec Command="rm -r obj" />
 </Target>

</Project>

Exe
netcoreapp2.1
假的
假的
C:\Temp
控制台
$(输出路径)
$(输出路径)

尝试在Directory.Build.Props文件中设置
BaseOutputPath
(bin)和
BaseIntermediateOutputPath
(obj)属性

您可以直接设置
OutputPath
intermediateOutputpath
,但这将阻止MSBuild创建特定于体系结构(x64/x86)和配置(发布/调试)的文件夹,因此通常最好将其保留在中

看起来msbuild在SDK项目加载中使用这些属性的时间点在各个csproj文件之前,因此要使用它们,需要在解决方案文件旁边的
目录.Build.Props中设置它们

该文件应如下所示(如果有文件,还应包括其中已有的任何内容):


C:\TestFolder
C:\TestFolder

您是否只需要
obj
folderI我不希望在.csproj所在的目录中创建任何文件夹添加您从VS的GUI尝试的文件夹?尝试使用命令promptNo我的意思是,尝试从VS GUIYes设置输出路径我尝试了BaseOutputPath和BaseIntermediateOutputPath,但仍然在.csproj所在的同一目录中创建了“obj”文件夹。已经试用过,但需要“obj”在经过一点研究后才能成功更新。事实证明,这些属性必须在Directory.Build.Props级别设置,而不是在单个项目级别设置。它们可以在单个项目级别上工作,但更为粗糙:
<Project>
  <PropertyGroup>
    <BaseIntermediateOutputPath>C:\TestFolder</BaseIntermediateOutputPath>
    <BaseOutputPath>C:\TestFolder</BaseOutputPath>
  </PropertyGroup>
</Project>