2 ***********************************************************************************************
\r
3 Microsoft.NET.DefaultOutputPaths.targets
\r
5 WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
\r
6 created a backup copy. Incorrect changes to this file will make it
\r
7 impossible to load or build your projects from the command-line or the IDE.
\r
9 Copyright (c) .NET Foundation. All rights reserved.
\r
10 ***********************************************************************************************
\r
12 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
\r
15 Apply the same default output paths as Microsoft.Common.targets now since we're running before them,
\r
16 but need to adjust them and/or make decisions in terms of them.
\r
18 Also note that common targets only set a default OutputPath if neither configuration nor
\r
19 platform were set by the user. This was used to validate that a valid configuration is passed,
\r
20 assuming the convention maintained by VS that every Configuration|Platform combination had
\r
21 an explicit OutputPath. Since we now want to support leaner project files with less
\r
22 duplication and more automatic defaults, we always set a default OutputPath and can no
\r
23 longer depend on that convention for validation. Getting validation re-enabled with a
\r
24 different mechanism is tracked by https://github.com/dotnet/sdk/issues/350
\r
27 <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
\r
29 <Configuration Condition="'$(Configuration)'==''">Debug</Configuration>
\r
30 <Platform Condition="'$(Platform)'==''">AnyCPU</Platform>
\r
31 <PlatformName Condition="'$(PlatformName)' == ''">$(Platform)</PlatformName>
\r
33 <BaseOutputPath Condition="'$(BaseOutputPath)' == ''">bin\</BaseOutputPath>
\r
34 <BaseOutputPath Condition="!HasTrailingSlash('$(BaseOutputPath)')">$(BaseOutputPath)\</BaseOutputPath>
\r
35 <OutputPath Condition="'$(OutputPath)' == '' and '$(PlatformName)' == 'AnyCPU'">$(BaseOutputPath)$(Configuration)\</OutputPath>
\r
36 <OutputPath Condition="'$(OutputPath)' == '' and '$(PlatformName)' != 'AnyCPU'">$(BaseOutputPath)$(PlatformName)\$(Configuration)\</OutputPath>
\r
37 <OutputPath Condition="!HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
\r
39 <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">obj\</BaseIntermediateOutputPath>
\r
40 <BaseIntermediateOutputPath Condition="!HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
\r
41 <IntermediateOutputPath Condition=" $(IntermediateOutputPath) == '' and '$(PlatformName)' == 'AnyCPU' ">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
\r
42 <IntermediateOutputPath Condition=" $(IntermediateOutputPath) == '' and '$(PlatformName)' != 'AnyCPU' ">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
\r
43 <IntermediateOutputPath Condition="!HasTrailingSlash('$(IntermediateOutputPath)')">$(IntermediateOutputPath)\</IntermediateOutputPath>
\r
46 <!-- Set the package output path (for nuget pack target) now, before the TargetFramework is appended -->
\r
48 <PackageOutputPath Condition="'$(PackageOutputPath)' == ''">$(OutputPath)</PackageOutputPath>
\r