为了保持存储库的清洁并与输出文件和构建文件分开,我们更改了项目文件中的相应路径。
对于Net Framework项目,指定 IntermediateOutputPath 会将obj目录重定向到相应的文件夹。
对于使用此属性的Net Core项目(3.0)是不够的。尽管Debug,Release文件夹确实已重定向,但 obj 文件夹仍会创建,并且其中包含一些文件-例如 project.assets.json,.csproj.nuget.cache,.csproj.nuget.dgspec.json,.csproj.nuget.g.props,.csproj.nuget.g.targets 。 使用 BaseIntermediateOutputPath -也不起作用。
只是想知道是否有人可以建议如何移动整个obj目录? 谢谢
Martin建议的解决方案在Net Core项目中效果很好
<Project>
<PropertyGroup>
<BuildDIrectory>C:\Temp\Build\$(Configuration)</BuildDIrectory>
<RelativePath>some arelative path which depends on location of corresponding project withing the solution</RelativePath>
<BaseIntermediateOutputPath>$(BuildDIrectory)\obj\$(RelativePath)\$(AssemblyName)\</BaseIntermediateOutputPath>
<OutputPath>$(BuildDIrectory)\out\$(RelativePath)\$(AssemblyName)\</OutputPath>
<DocumentationFile>$(BuildDIrectory)\Documentation\$(RelativePath)\$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
...
</Project>
答案 0 :(得分:0)
new LoadingActivity(InspectionSelectionActivity.this).execute();
也可以使用,但是必须尽早设置才能生效。
最简单的方法是将其添加到BaseIntermediateOutputPath
文件中:
Directory.Build.props
如果要直接在csproj文件中指定它,则不能使用<Project>
<PropertyGroup>
<BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)..\shared-obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
</PropertyGroup>
</Project>
表示法,因为需要在应用SDK的某些部分之前设置该属性。但是,在使用显式SDK导入和正确排序时,它可以工作:
<Project Sdk="