无论何时创建.NET Core项目,都会在构建期间创建“ 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>
答案 0 :(得分:1)
尝试在Directory.Build.Props文件中设置BaseOutputPath
(bin)和BaseIntermediateOutputPath
(obj)属性。
https://docs.microsoft.com/en-us/visualstudio/msbuild/common-msbuild-project-properties?view=vs-2019
您可以直接设置OutputPath
和IntermediateOuputPath
,但这将阻止MSBuild创建特定于体系结构(x64 / x86)和配置(发布/调试)的文件夹,因此通常最好将其保留在
msbuild似乎在SDK项目加载中使用这些属性的时间早于各个csproj文件,因此要使用它们,您需要在解决方案文件旁边的Directory.Build.Props
中进行设置。
文件应如下所示(如果有的话,还要加上其中已经包含的所有内容):
<Project>
<PropertyGroup>
<BaseIntermediateOutputPath>C:\TestFolder</BaseIntermediateOutputPath>
<BaseOutputPath>C:\TestFolder</BaseOutputPath>
</PropertyGroup>
</Project>