diff --git a/.editorconfig b/.editorconfig
index b8e856dc62d..6fb4a7461fc 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -3,20 +3,54 @@
# top-most EditorConfig file
root = true
-# Default settings:
-# A newline ending every file
-# Use 4 spaces as indentation
+# Defaults
[*]
-insert_final_newline = true
-indent_style = space
+charset = utf-8
indent_size = 4
+indent_style = space
+insert_final_newline = false
trim_trailing_whitespace = true
-[project.json]
+# Bash scripts
+[*.sh]
+indent_size = 2
+end_of_line = lf
+
+# Batch scripts
+[*.{cmd,bat}]
+end_of_line = crlf
+
+# MSBuild XML Build files
+[*.{props,targets,tasks,overridetasks}]
+indent_size = 2
+
+# MSBuild XML Project files
+[*.{csproj,vbproj,shproj,proj,projitems}]
+indent_size = 2
+
+# VisualStudio XML Source files
+[*.{xaml,xml,xsd}]
+indent_size = 2
+
+# VisualStudio XML Configuration files
+[*.{ruleset,config,nuspec,resx,vsixmanifest,vsct}]
indent_size = 2
+# YAML config files
+[*.{yml,yaml}]
+indent_size = 2
+
+# C++ Files
+[*.{cpp,h,in}]
+curly_bracket_next_line = true
+indent_brace_style = Allman
+
# C# files
[*.cs]
+
+# License header
+file_header_template = Licensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the MIT license.\n
+
# New line preferences
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
@@ -156,44 +190,5 @@ csharp_space_between_square_brackets = false
# Analyzers
dotnet_code_quality.ca1802.api_surface = private, internal
dotnet_code_quality.ca2208.api_surface = public
-
-# License header
-file_header_template = Licensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the MIT license.\n
-
-# C++ Files
-[*.{cpp,h,in}]
-curly_bracket_next_line = true
-indent_brace_style = Allman
-
-# Xml project files
-[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}]
-indent_size = 2
-
-[*.{csproj,vbproj,proj,nativeproj,locproj}]
-charset = utf-8
-
-# Xml build files
-[*.builds]
-indent_size = 2
-
-# Xml files
-[*.{xml,stylecop,resx,ruleset}]
-indent_size = 2
-
-# Xml config files
-[*.{props,targets,config,nuspec}]
-indent_size = 2
-
-# YAML config files
-[*.{yml,yaml}]
-indent_size = 2
-
-# Shell scripts
-[*.sh]
-end_of_line = lf
-[*.{cmd, bat}]
-end_of_line = crlf
-
-[src/**/*.{cs,vb}]
# IDE0005: Remove unnecessary usings/imports
dotnet_diagnostic.IDE0005.severity = warning
diff --git a/src/Tasks/Microsoft.CSharp.CrossTargeting.targets b/src/Tasks/Microsoft.CSharp.CrossTargeting.targets
index 26ae23579d9..eeabf600ee9 100644
--- a/src/Tasks/Microsoft.CSharp.CrossTargeting.targets
+++ b/src/Tasks/Microsoft.CSharp.CrossTargeting.targets
@@ -9,7 +9,6 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
-
@@ -22,4 +21,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.CSharp.CurrentVersion.targets b/src/Tasks/Microsoft.CSharp.CurrentVersion.targets
index d7bd7923aa7..29244a6cf55 100644
--- a/src/Tasks/Microsoft.CSharp.CurrentVersion.targets
+++ b/src/Tasks/Microsoft.CSharp.CurrentVersion.targets
@@ -1,4 +1,4 @@
-
-
@@ -370,4 +369,4 @@ using System.Reflection%3b
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.CSharp.targets b/src/Tasks/Microsoft.CSharp.targets
index 80361f7c441..a7a2858267e 100644
--- a/src/Tasks/Microsoft.CSharp.targets
+++ b/src/Tasks/Microsoft.CSharp.targets
@@ -1,4 +1,4 @@
-
-
-
-
-
-
-
- $(MSBuildFrameworkToolsPath)\Microsoft.CSharp.targets
-
- $(MsBuildFrameworkToolsPath)
-
-
-
-
- $(MSBuildToolsPath)\Microsoft.CSharp.CrossTargeting.targets
-
-
-
-
- $(MSBuildToolsPath)\Microsoft.CSharp.CurrentVersion.targets
-
-
-
-
-
-
-
- $(ImportByWildcardBeforeMicrosoftCommonTargets)
- true
-
- $(ImportByWildcardAfterMicrosoftCommonTargets)
- true
-
- $(ImportUserLocationsByWildcardBeforeMicrosoftCommonTargets)
- true
-
- $(ImportUserLocationsByWildcardAfterMicrosoftCommonTargets)
- true
-
- false
- false
- false
- false
-
- $(MSBuildExtensionsPath)\v4.0\Custom.Before.Microsoft.Common.targets
- $(MSBuildExtensionsPath)\v4.0\Custom.After.Microsoft.Common.targets
-
-
- $(ImportByWildcardBeforeMicrosoftCSharpTargets)
- true
-
- $(ImportByWildcardAfterMicrosoftCSharpTargets)
- true
-
- $(ImportUserLocationsByWildcardBeforeMicrosoftCSharpTargets)
- true
-
- $(ImportUserLocationsByWildcardAfterMicrosoftCSharpTargets)
- true
-
- false
- false
- false
- false
-
- $(MSBuildExtensionsPath)\v4.0\Custom.Before.Microsoft.CSharp.targets
- $(MSBuildExtensionsPath)\v4.0\Custom.After.Microsoft.CSharp.targets
-
-
-
-
- $(ImportByWildcardBeforeMicrosoftNetFrameworkProps)
- true
-
- $(ImportByWildcardAfterMicrosoftNetFrameworkProps)
- true
-
- $(ImportUserLocationsByWildcardBeforeMicrosoftNetFrameworkProps)
- true
-
- $(ImportUserLocationsByWildcardAfterMicrosoftNetFrameworkProps)
- true
-
- false
- false
- false
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(MSBuildFrameworkToolsPath)
-
-
-
+
+
+
+
+ $(MSBuildFrameworkToolsPath)\Microsoft.CSharp.targets
+
+ $(MsBuildFrameworkToolsPath)
+
+
+
+
+ $(MSBuildToolsPath)\Microsoft.CSharp.CrossTargeting.targets
+
+
+
+
+ $(MSBuildToolsPath)\Microsoft.CSharp.CurrentVersion.targets
+
+
+
+
+
+
+
+ $(ImportByWildcardBeforeMicrosoftCommonTargets)
+ true
+
+ $(ImportByWildcardAfterMicrosoftCommonTargets)
+ true
+
+ $(ImportUserLocationsByWildcardBeforeMicrosoftCommonTargets)
+ true
+
+ $(ImportUserLocationsByWildcardAfterMicrosoftCommonTargets)
+ true
+
+ false
+ false
+ false
+ false
+
+ $(MSBuildExtensionsPath)\v4.0\Custom.Before.Microsoft.Common.targets
+ $(MSBuildExtensionsPath)\v4.0\Custom.After.Microsoft.Common.targets
+
+
+ $(ImportByWildcardBeforeMicrosoftCSharpTargets)
+ true
+
+ $(ImportByWildcardAfterMicrosoftCSharpTargets)
+ true
+
+ $(ImportUserLocationsByWildcardBeforeMicrosoftCSharpTargets)
+ true
+
+ $(ImportUserLocationsByWildcardAfterMicrosoftCSharpTargets)
+ true
+
+ false
+ false
+ false
+ false
+
+ $(MSBuildExtensionsPath)\v4.0\Custom.Before.Microsoft.CSharp.targets
+ $(MSBuildExtensionsPath)\v4.0\Custom.After.Microsoft.CSharp.targets
+
+
+
+
+ $(ImportByWildcardBeforeMicrosoftNetFrameworkProps)
+ true
+
+ $(ImportByWildcardAfterMicrosoftNetFrameworkProps)
+ true
+
+ $(ImportUserLocationsByWildcardBeforeMicrosoftNetFrameworkProps)
+ true
+
+ $(ImportUserLocationsByWildcardAfterMicrosoftNetFrameworkProps)
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(MSBuildFrameworkToolsPath)
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Common.CrossTargeting.targets b/src/Tasks/Microsoft.Common.CrossTargeting.targets
index c7d553aecd3..8cfe87dc672 100644
--- a/src/Tasks/Microsoft.Common.CrossTargeting.targets
+++ b/src/Tasks/Microsoft.Common.CrossTargeting.targets
@@ -1,4 +1,4 @@
-
-
@@ -43,7 +42,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
@(_TargetFrameworkInfo->'%(TargetPlatformMonikers)')
$(_AdditionalPropertiesFromProject)
false
-
+
false
true
@@ -80,18 +79,18 @@ Copyright (C) Microsoft Corporation. All rights reserved.
@@ -136,19 +135,19 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
-
+
$([MSBuild]::IsRunningFromVisualStudio())
$([MSBuild]::GetToolsDirectory32())\..\..\..\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.targets
@@ -177,9 +174,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
true
@@ -188,15 +183,15 @@ Copyright (C) Microsoft Corporation. All rights reserved.
Condition="'$(ImportByWildcardAfterMicrosoftCommonCrossTargetingTargets)' == 'true' and exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.CrossTargeting.targets\ImportAfter')"/>
true
@@ -209,9 +204,9 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ Determine the path to the directory build targets file if the user did not disable $(ImportDirectoryBuildTargets) and
+ they did not already specify an absolute path to use via $(DirectoryBuildTargetsPath)
+ -->
<_DirectoryBuildTargetsFile Condition="'$(_DirectoryBuildTargetsFile)' == ''">Directory.Build.targets
<_DirectoryBuildTargetsBasePath Condition="'$(_DirectoryBuildTargetsBasePath)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), '$(_DirectoryBuildTargetsFile)'))
@@ -220,4 +215,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Common.CurrentVersion.targets b/src/Tasks/Microsoft.Common.CurrentVersion.targets
index 2847dcd30d7..32a850ca130 100644
--- a/src/Tasks/Microsoft.Common.CurrentVersion.targets
+++ b/src/Tasks/Microsoft.Common.CurrentVersion.targets
@@ -1,4 +1,4 @@
-
-
@@ -131,7 +130,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
(eg. obj\Debug). If this property is overridden, then setting BaseIntermediateOutputPath has no effect.
Ensure any and all path property has a trailing slash, so it can be concatenated.
- -->
+ -->
@@ -785,10 +784,10 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ -->
@@ -798,15 +797,16 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ -->
@@ -828,9 +828,11 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
x86
@@ -848,12 +850,11 @@ Copyright (C) Microsoft Corporation. All rights reserved.
- <_ProjectReferencePlatformPossibilities Include="@(_MSBuildProjectReferenceExistent)"
+ <_ProjectReferencePlatformPossibilities Include="@(_MSBuildProjectReferenceExistent)"
Condition="'%(_MSBuildProjectReferenceExistent.SkipGetPlatformProperties)' != 'true'"/>
@@ -1734,7 +1735,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-->
<_MSBuildProjectReferenceExistent Condition="'%(_MSBuildProjectReferenceExistent.SkipGetTargetFrameworkProperties)' == '' and ('%(Extension)' == '.vcxproj' or '%(Extension)' == '.nativeproj')">
-
@@ -1756,7 +1757,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-->
<_MSBuildProjectReferenceExistent Condition="'%(_MSBuildProjectReferenceExistent.SetTargetFramework)' != ''">
-
@@ -1825,7 +1826,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
https://github.com/dotnet/sdk/issues/416
Furthermore, if we're referencing a .vcxproj or .nativeproj, those items won't be populated into `AnnotatedProjects`
- by `GetReferenceNearestTargetFrameworkTask`, so let them flow when `EnableDynamicPlatformResolution` is set.
+ by `GetReferenceNearestTargetFrameworkTask`, so let them flow when `EnableDynamicPlatformResolution` is set.
-->
@@ -6665,4 +6666,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Common.overridetasks b/src/Tasks/Microsoft.Common.overridetasks
index f9bc7334290..1269913cf83 100644
--- a/src/Tasks/Microsoft.Common.overridetasks
+++ b/src/Tasks/Microsoft.Common.overridetasks
@@ -1,39 +1,51 @@
-
+
+WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+ created a backup copy. Incorrect changes to this file will make it
+ impossible to load or build your projects from the command-line or the IDE.
-
-
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+
-
+
-
-
+
-
-
+
-
-
+
-
+
+
-
-
+
+
-
-
+
+
-
-
+
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Common.props b/src/Tasks/Microsoft.Common.props
index b08b6558352..5fc250c1c06 100644
--- a/src/Tasks/Microsoft.Common.props
+++ b/src/Tasks/Microsoft.Common.props
@@ -1,4 +1,4 @@
-
-
@@ -21,9 +20,9 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ Determine the path to the directory build props file if the user did not disable $(ImportDirectoryBuildProps) and
+ they did not already specify an absolute path to use via $(DirectoryBuildPropsPath)
+ -->
<_DirectoryBuildPropsFile Condition="'$(_DirectoryBuildPropsFile)' == ''">Directory.Build.props
<_DirectoryBuildPropsBasePath Condition="'$(_DirectoryBuildPropsBasePath)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), '$(_DirectoryBuildPropsFile)'))
@@ -33,27 +32,27 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ Each package management system should use a unique moniker to avoid collisions. It is a wild-card import so the package
+ management system can write out multiple files but the order of the import is alphabetic because MSBuild sorts the list.
+ -->
+ The declaration of $(BaseIntermediateOutputPath) had to be moved up from 'Microsoft.Common.CurrentVersion.targets'
+ in order for the $(MSBuildProjectExtensionsPath) to use it as a default.
+ -->
obj\
$(BaseIntermediateOutputPath)\
<_InitialBaseIntermediateOutputPath>$(BaseIntermediateOutputPath)
$(BaseIntermediateOutputPath)
+ -->
$([System.IO.Path]::Combine('$(MSBuildProjectDirectory)', '$(MSBuildProjectExtensionsPath)'))
$(MSBuildProjectExtensionsPath)\
true
@@ -62,59 +61,58 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
+ Wildcard imports come from '$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props\' folder.
+ This is same as the extension point used in 'Microsoft.Common.targets', which is located in
+ the '$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.targets\' directory.
+ -->
+ In VS 2010 SP1 and VS 2012, both supported for asset compatibility, the MSBuild installed
+ as part of them did not enforce using the local ToolsVersion (4.0) in all cases, but instead
+ just used whatever ToolsVersion was in the project file if it existed on the machine, and
+ only forced 4.0 if that ToolsVersion did not exist.
+
+ Moving forward, we do want to enforce a single acting ToolsVersion per version of Visual Studio,
+ but in order to approximate this behavior on VS 2010 SP1 and VS 2012 as well, we've redirected
+ the targets: If we're building using 4.X MSBuild (which doesn't define the new reserved
+ property, $(MSBuildAssemblyVersion), we'll point right back at the 4.0 targets, which still exist
+ as part of the .NET Framework. Only if we're using the new MSBuild will we point to the current
+ targets.
+ -->
+ Reset $(VisualStudioVersion) if it's 12.0+: Should be 10.0 if VS 2010 is installed or 11.0 otherwise,
+ but since we don't have a good way of telling whether VS 2010 is installed, make it 11.0 if
+ VS 2012 is installed or 10.0 otherwise. The reset should be safe because if it was already
+ set to something (e.g. 11.0 in a VS 2012 command prompt) then MSBuild's internal VS version
+ defaulting code should never come into the picture, so the only way it could be 12.0+
+ when building a TV 12.0 project (because we're in this file) using MSBuild 4.5 (because
+ $(MSBuildAssemblyVersion) hasn't been set) is if it's a TV 12.0 project on an empty command prompt.
+ -->
11.0
10.0
-
+
$(MSBuildExtensionsPath)\v4.0\Custom.Before.$(MSBuildThisFile)
$(MSBuildExtensionsPath)\v4.0\Custom.After.$(MSBuildThisFile)
-
+
@@ -123,16 +121,18 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ Only import the extension targets if we're actually in a 12.0 project here (rather than one we're attempting
+ to treat as 4.0) OR if the Dev11 'Microsoft.Common.props' don't exist. If it's a 12.0 project we're redirecting
+ to 4.0 and the Dev11 'Microsoft.Common.props' do exist, the extension targets will have been imported already
+ so there's no need to import them twice.
+ -->
-
+
true
@@ -150,25 +150,20 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ Only import the extension targets if we're actually in a 12.0 project here (rather than one we're attempting
+ to treat as 4.0) OR if the Dev11 'Microsoft.Common.props' don't exist. If it's a 12.0 project we're redirecting
+ to 4.0 and the Dev11 'Microsoft.Common.props' do exist, the extension targets will have been imported already
+ so there's no need to import them twice.
+ -->
-
+
-
+
$([MSBuild]::IsRunningFromVisualStudio())
$([MSBuild]::GetToolsDirectory32())\..\..\..\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.props
@@ -193,4 +188,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
true
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Common.targets b/src/Tasks/Microsoft.Common.targets
index 753dad7cfaf..5a18904b42f 100644
--- a/src/Tasks/Microsoft.Common.targets
+++ b/src/Tasks/Microsoft.Common.targets
@@ -1,4 +1,4 @@
-
-
-
+ In VS 2010 SP1 and VS 2012, both supported for asset compatibility, the MSBuild installed
+ as part of them did not enforce using the local ToolsVersion (4.0) in all cases, but instead
+ just used whatever ToolsVersion was in the project file if it existed on the machine, and
+ only forced 4.0 if that ToolsVersion did not exist.
+
+ Moving forward, we do want to enforce a single acting ToolsVersion per version of Visual Studio,
+ but in order to approximate this behavior on VS 2010 SP1 and VS 2012 as well, we've redirected
+ the targets: If we're building using 4.X MSBuild (which doesn't define the new reserved
+ property, MSBuildAssemblyVersion), we'll point right back at the 4.0 targets, which still exist
+ as part of the .NET Framework. Only if we're using the new MSBuild will we point to the current
+ targets.
+ -->
@@ -43,15 +41,15 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+
-
$(ImportByWildcardBeforeMicrosoftCommonTargets)
true
@@ -73,17 +71,17 @@ Copyright (C) Microsoft Corporation. All rights reserved.
$(MSBuildExtensionsPath)\v4.0\Custom.After.Microsoft.Common.targets
+
-
$(ImportByWildcardBeforeMicrosoftNetFrameworkProps)
true
@@ -120,7 +118,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
Each package management system should use a unique moniker to avoid collisions. It is a wild-card import so the package
management system can write out multiple files but the order of the import is alphabetic because MSBuild sorts the list.
- -->
+ -->
true
@@ -132,9 +130,9 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ Determine the path to the directory build targets file if the user did not disable $(ImportDirectoryBuildTargets) and
+ they did not already specify an absolute path to use via $(DirectoryBuildTargetsPath)
+ -->
<_DirectoryBuildTargetsFile Condition="'$(_DirectoryBuildTargetsFile)' == ''">Directory.Build.targets
<_DirectoryBuildTargetsBasePath Condition="'$(_DirectoryBuildTargetsBasePath)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), '$(_DirectoryBuildTargetsFile)'))
@@ -153,11 +151,12 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
-
- $(MSBuildFrameworkToolsPath)
-
+
+
+ $(MSBuildFrameworkToolsPath)
+
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Common.tasks b/src/Tasks/Microsoft.Common.tasks
index f6b98da83af..cac98d9941b 100644
--- a/src/Tasks/Microsoft.Common.tasks
+++ b/src/Tasks/Microsoft.Common.tasks
@@ -1,187 +1,199 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Data.Entity.targets b/src/Tasks/Microsoft.Data.Entity.targets
index 534b0e4c192..a8f4d199248 100644
--- a/src/Tasks/Microsoft.Data.Entity.targets
+++ b/src/Tasks/Microsoft.Data.Entity.targets
@@ -1,15 +1,26 @@
-
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+
-
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Managed.After.targets b/src/Tasks/Microsoft.Managed.After.targets
index a5dfd1da0ff..eb091c43cb0 100644
--- a/src/Tasks/Microsoft.Managed.After.targets
+++ b/src/Tasks/Microsoft.Managed.After.targets
@@ -1,5 +1,7 @@
-
-
-
-
- TargetFramework
- TargetFrameworks
-
-
-
- true
-
-
-
-
-
-
+
+
+ TargetFramework
+ TargetFrameworks
+
+
+
+ true
+
+
+
+
+
+
@@ -69,4 +70,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Managed.Before.targets b/src/Tasks/Microsoft.Managed.Before.targets
index d8bde6bb9a2..e85a784ff6b 100644
--- a/src/Tasks/Microsoft.Managed.Before.targets
+++ b/src/Tasks/Microsoft.Managed.Before.targets
@@ -1,5 +1,7 @@
-
-
-
-
- true
-
+
+
+ true
+
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Managed.targets b/src/Tasks/Microsoft.Managed.targets
index 25d1e7528c2..810a8121a84 100644
--- a/src/Tasks/Microsoft.Managed.targets
+++ b/src/Tasks/Microsoft.Managed.targets
@@ -1,16 +1,21 @@
-
-
-
+
<_RecursiveTargetForContentCopying>GetCopyToOutputDirectoryItems
<_RecursiveTargetForContentCopying Condition=" '$(MSBuildCopyContentTransitively)' == 'false' ">_GetCopyToOutputDirectoryItemsFromThisProject
@@ -18,4 +23,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.NET.props b/src/Tasks/Microsoft.NET.props
index 12ee616dbce..af931ca6c4d 100644
--- a/src/Tasks/Microsoft.NET.props
+++ b/src/Tasks/Microsoft.NET.props
@@ -1,4 +1,4 @@
-
-
+ -->
$(SDK40ToolsPath)
@@ -31,7 +30,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
SetHighEntropyVA
Set HighEntropyVA according to the TargetFramework
============================================================
- -->
+ -->
true
@@ -41,4 +40,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
false
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.NETFramework.CurrentVersion.props b/src/Tasks/Microsoft.NETFramework.CurrentVersion.props
index 10000e46364..2d683e5dbce 100644
--- a/src/Tasks/Microsoft.NETFramework.CurrentVersion.props
+++ b/src/Tasks/Microsoft.NETFramework.CurrentVersion.props
@@ -1,4 +1,4 @@
-
-
@@ -40,9 +39,9 @@ Copyright (C) Microsoft Corporation. All rights reserved.
<_FullFrameworkReferenceAssemblyPaths Condition="Exists('$(MSBuildProgramFiles32)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\RedistList\FrameworkList.xml')">$(MSBuildProgramFiles32)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
@@ -60,7 +59,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
$(Registry:HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework@InstallRoot)
<_DeploymentSignClickOnceManifests Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(SignManifests)' == 'true'">true
+ a project targeting 2.0 to 3.5 the system.core reference is not added, therefore we need to add it automatically -->
true
System.Core;$(AdditionalExplicitAssemblyReferences)
@@ -71,15 +70,15 @@ Copyright (C) Microsoft Corporation. All rights reserved.
Get the paths for the .NET Framework tools and sdk tools directories.
This does not need to be a target since all of the values are availiable at project evaluation time.
============================================================
- -->
+ -->
true
$(MSBuildFrameworkToolsRoot)\v3.5
$(SDK35ToolsPath)
+ When a new windows SDK revs they will inplace update the location pointed to by this property. When a new sdk is release this target will have to be
+ revised along with another toolsversion. -->
v2.0.50727
v$(MSBuildRuntimeVersion)
@@ -115,10 +114,10 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ And before the ImportAfter\* , so users can override it-->
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.NETFramework.CurrentVersion.targets b/src/Tasks/Microsoft.NETFramework.CurrentVersion.targets
index 5e79387e8cd..f215dea69f1 100644
--- a/src/Tasks/Microsoft.NETFramework.CurrentVersion.targets
+++ b/src/Tasks/Microsoft.NETFramework.CurrentVersion.targets
@@ -1,4 +1,4 @@
-
-
@@ -30,7 +29,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
DependsOnTargets="$(GetFrameworkPathsDependsOn)">
+ now only depend on statically availiable values-->
<_TargetFramework40DirectoryItem Include="$(MSBuildFrameworkToolsRoot)v4.0.30319"/>
@@ -134,4 +133,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.NETFramework.props b/src/Tasks/Microsoft.NETFramework.props
index ed2109fb069..036d3f023d9 100644
--- a/src/Tasks/Microsoft.NETFramework.props
+++ b/src/Tasks/Microsoft.NETFramework.props
@@ -1,47 +1,45 @@
-
-
-
-
-
-
-
- $(MSBuildFrameworkToolsPath)\Microsoft.NETFramework.props
-
-
-
-
- $(MSBuildToolsPath)\Microsoft.NETFramework.CurrentVersion.props
-
-
-
-
-
-
-
+
+
+
+
+ $(MSBuildFrameworkToolsPath)\Microsoft.NETFramework.props
+
+
+
+
+ $(MSBuildToolsPath)\Microsoft.NETFramework.CurrentVersion.props
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.NETFramework.targets b/src/Tasks/Microsoft.NETFramework.targets
index 47f919f678d..b542a70ddaa 100644
--- a/src/Tasks/Microsoft.NETFramework.targets
+++ b/src/Tasks/Microsoft.NETFramework.targets
@@ -1,80 +1,78 @@
-
-
-
-
-
-
-
- $(MSBuildFrameworkToolsPath)\Microsoft.NETFramework.targets
-
-
-
-
- $(MSBuildToolsPath)\Microsoft.NETFramework.CurrentVersion.targets
-
-
-
-
-
-
- $(ImportByWildcardBeforeMicrosoftNetFrameworkTargets)
- true
-
- $(ImportByWildcardAfterMicrosoftNetFrameworkTargets)
- true
-
- $(ImportUserLocationsByWildcardBeforeMicrosoftNetFrameworkTargets)
- true
-
- $(ImportUserLocationsByWildcardAfterMicrosoftNetFrameworkTargets)
- true
-
- false
- false
- false
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ $(MSBuildFrameworkToolsPath)\Microsoft.NETFramework.targets
+
+
+
+
+ $(MSBuildToolsPath)\Microsoft.NETFramework.CurrentVersion.targets
+
+
+
+
+
+
+ $(ImportByWildcardBeforeMicrosoftNetFrameworkTargets)
+ true
+
+ $(ImportByWildcardAfterMicrosoftNetFrameworkTargets)
+ true
+
+ $(ImportUserLocationsByWildcardBeforeMicrosoftNetFrameworkTargets)
+ true
+
+ $(ImportUserLocationsByWildcardAfterMicrosoftNetFrameworkTargets)
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.ServiceModel.targets b/src/Tasks/Microsoft.ServiceModel.targets
index 10579ef15e2..53e46a65fe4 100644
--- a/src/Tasks/Microsoft.ServiceModel.targets
+++ b/src/Tasks/Microsoft.ServiceModel.targets
@@ -1,15 +1,26 @@
-
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+
-
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.VisualBasic.CrossTargeting.targets b/src/Tasks/Microsoft.VisualBasic.CrossTargeting.targets
index 6d0ca32d78f..d535a471c09 100644
--- a/src/Tasks/Microsoft.VisualBasic.CrossTargeting.targets
+++ b/src/Tasks/Microsoft.VisualBasic.CrossTargeting.targets
@@ -9,7 +9,6 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
-
@@ -22,4 +21,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.VisualBasic.CurrentVersion.targets b/src/Tasks/Microsoft.VisualBasic.CurrentVersion.targets
index 45f937a1389..54f7205e077 100644
--- a/src/Tasks/Microsoft.VisualBasic.CurrentVersion.targets
+++ b/src/Tasks/Microsoft.VisualBasic.CurrentVersion.targets
@@ -1,4 +1,4 @@
-
-
@@ -375,4 +374,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.VisualBasic.targets b/src/Tasks/Microsoft.VisualBasic.targets
index 9e3824ca1b2..b5aa3d0ef71 100644
--- a/src/Tasks/Microsoft.VisualBasic.targets
+++ b/src/Tasks/Microsoft.VisualBasic.targets
@@ -1,4 +1,3 @@
-
-
-
-
+
@@ -55,14 +52,14 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ Overrides for the Microsoft.Common.targets extension targets. Used to make sure that only the imports we specify
+ (hard-coded to 4.0 locations) are used, not the 12.0 locations that would be used by default. Defined here because
+ Microsoft.VisualBasic.targets imports Microsoft.Common.targets from the current directory rather than using
+ MSBuildToolsPath, so defining these in Microsoft.Common.targets alone would not suffice for VB projects.
+
+ NOTE: This logic is duplicated in Microsoft.CSharp.targets (C# has the same problem) and in Microsoft.Common.targets
+ (for anyone who DOES import it directly), so for any changes to this logic in this file, please also edit the other two.
+ -->
$(ImportByWildcardBeforeMicrosoftCommonTargets)
true
@@ -106,16 +103,16 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
+
$(ImportByWildcardBeforeMicrosoftNetFrameworkProps)
true
@@ -140,17 +137,17 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ Microsoft.Common.targets from the current directory rather than using MSBuildToolsPath (which would redirect to our
+ targets), we're stuck doing it this way instead. -->
+ Microsoft.Common.targets from the current directory rather than using MSBuildToolsPath (which would redirect to our
+ targets), and Microsoft.Common.targets does likewise with Microsoft.NETFramework.props, we're stuck doing it this
+ way instead. -->
@@ -163,17 +160,17 @@ Copyright (C) Microsoft Corporation. All rights reserved.
+ Microsoft.Common.targets from the current directory rather than using MSBuildToolsPath (which would redirect to our
+ targets), and Microsoft.Common.targets does likewise with Microsoft.NETFramework.props, we're stuck doing it this
+ way instead. -->
+ Microsoft.Common.targets from the current directory rather than using MSBuildToolsPath (which would redirect to our
+ targets), we're stuck doing it this way instead. -->
@@ -184,12 +181,12 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-
-
- $(MSBuildFrameworkToolsPath)
-
+
+
+ $(MSBuildFrameworkToolsPath)
+
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.VisualStudioVersion.v11.Common.props b/src/Tasks/Microsoft.VisualStudioVersion.v11.Common.props
index 858e86ecee9..6179ac1062d 100644
--- a/src/Tasks/Microsoft.VisualStudioVersion.v11.Common.props
+++ b/src/Tasks/Microsoft.VisualStudioVersion.v11.Common.props
@@ -1,4 +1,4 @@
-
-
@@ -17,4 +16,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.VisualStudioVersion.v12.Common.props b/src/Tasks/Microsoft.VisualStudioVersion.v12.Common.props
index 6fb9cfdbfa4..3af4fa6b901 100644
--- a/src/Tasks/Microsoft.VisualStudioVersion.v12.Common.props
+++ b/src/Tasks/Microsoft.VisualStudioVersion.v12.Common.props
@@ -1,4 +1,4 @@
-
-
@@ -17,4 +16,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.VisualStudioVersion.v14.Common.props b/src/Tasks/Microsoft.VisualStudioVersion.v14.Common.props
index 1f0a2830339..9c08d3cfcbb 100644
--- a/src/Tasks/Microsoft.VisualStudioVersion.v14.Common.props
+++ b/src/Tasks/Microsoft.VisualStudioVersion.v14.Common.props
@@ -1,4 +1,4 @@
-
-
@@ -17,4 +16,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.VisualStudioVersion.v15.Common.props b/src/Tasks/Microsoft.VisualStudioVersion.v15.Common.props
index 355652bffd0..9d9e0f62d71 100644
--- a/src/Tasks/Microsoft.VisualStudioVersion.v15.Common.props
+++ b/src/Tasks/Microsoft.VisualStudioVersion.v15.Common.props
@@ -9,7 +9,6 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
-
@@ -17,4 +16,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.VisualStudioVersion.v16.Common.props b/src/Tasks/Microsoft.VisualStudioVersion.v16.Common.props
index 832c3d55387..1843227e760 100644
--- a/src/Tasks/Microsoft.VisualStudioVersion.v16.Common.props
+++ b/src/Tasks/Microsoft.VisualStudioVersion.v16.Common.props
@@ -1,4 +1,4 @@
-
-
@@ -17,4 +16,4 @@ Copyright (C) Microsoft Corporation. All rights reserved.
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.VisualStudioVersion.v17.Common.props b/src/Tasks/Microsoft.VisualStudioVersion.v17.Common.props
index 452a3fe9cd4..73360128537 100644
--- a/src/Tasks/Microsoft.VisualStudioVersion.v17.Common.props
+++ b/src/Tasks/Microsoft.VisualStudioVersion.v17.Common.props
@@ -1,4 +1,4 @@
-
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+
-
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.WorkflowBuildExtensions.targets b/src/Tasks/Microsoft.WorkflowBuildExtensions.targets
index 448174b8eab..d876f1752e4 100644
--- a/src/Tasks/Microsoft.WorkflowBuildExtensions.targets
+++ b/src/Tasks/Microsoft.WorkflowBuildExtensions.targets
@@ -1,4 +1,4 @@
-
-
-
+ Thus, we are shimming those targets files so that they do still appear in MSBuildToolsPath, so that
+ consumers of them are not broken, but since the targets files themselves are still part of .NET,
+ the shim will internally simply redirect to the real copy of the targets file in the .NET Framework.
+ -->
-
+
-
-
+ In Dev16 we no longer need these files to exist on disk for Workflow Designer scenarios. We can't
+ modify $(MSBuildFrameworkToolsPath)\Microsoft.WorkflowBuildExtensions.targets because that would
+ break the Workflow Designer for older versions of VS. Instead, we effectively turn it off by
+ overriding it with a no-op implementation here.
+ -->
+
-
+
\ No newline at end of file
diff --git a/src/Tasks/Microsoft.Xaml.targets b/src/Tasks/Microsoft.Xaml.targets
index 78f4055b273..05d9fca552f 100644
--- a/src/Tasks/Microsoft.Xaml.targets
+++ b/src/Tasks/Microsoft.Xaml.targets
@@ -1,22 +1,33 @@
-
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+
-
-
- $(MSBuildToolsPath64)
-
+
-
+
+
+ $(MSBuildToolsPath64)
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Workflow.VisualBasic.targets b/src/Tasks/Workflow.VisualBasic.targets
index d9ea4e9e3b8..416c92b34d2 100644
--- a/src/Tasks/Workflow.VisualBasic.targets
+++ b/src/Tasks/Workflow.VisualBasic.targets
@@ -1,15 +1,26 @@
-
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+
-
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Tasks/Workflow.targets b/src/Tasks/Workflow.targets
index 11ca5885ec4..0ec95b921f5 100644
--- a/src/Tasks/Workflow.targets
+++ b/src/Tasks/Workflow.targets
@@ -1,15 +1,26 @@
-
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+
-
+
+
+
+
+
\ No newline at end of file