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