Use e.g. bin/obj/sfx/windowsdesktop for short path
authorDavis Goodin <dagood@microsoft.com>
Mon, 6 May 2019 22:15:58 +0000 (17:15 -0500)
committerDavis Goodin <dagood@microsoft.com>
Fri, 10 May 2019 20:01:09 +0000 (15:01 -0500)
Commit migrated from https://github.com/dotnet/core-setup/commit/d8403937894c8c600d4bad8cc140f59e5390e92b

src/installer/pkg/packaging-tools/framework.packaging.targets
src/installer/pkg/packaging-tools/sharedFramework/sharedFramework.csproj

index 9188524..dc77e8d 100644 (file)
   <Target Name="GenerateSharedFramework"
           Condition="'$(GenerateSharedFramework)' == 'true'">
     <PropertyGroup>
-      <SharedFrameworkIntermediateOutputPath>$(IntermediateOutputPath)sfx/</SharedFrameworkIntermediateOutputPath>
+      <!--
+        For the sfx intermediate path, use 'bin/obj/sfx/', without OSPlatformConfig (RID +
+        Release/Debug). This is to save on path chars, which are at a premium. if the Git clone root
+        is even a little deep, Windows max path is a big problem. Package caches are a particular
+        problem due to long IDs, long versions, and deep resource DLLs with big names.
+
+        The OSPlatformConfig is normally in the intermediate path because it allows building
+        different configurations without cleaning the repo in between. This can be valuable for dev
+        builds. Not including OSPlatformConfig is ok in this target because the intermediate dir is
+        always deleted before it's used.
+      -->
+      <SharedFrameworkIntermediateOutputPath>$(BaseIntermediateOutputPath)sfx/$(ShortFrameworkName)/</SharedFrameworkIntermediateOutputPath>
     </PropertyGroup>
 
     <!-- Delete layout directory and sfx NuGet cache to ensure freshness. -->
index 92c4062..6ab6ad8 100644 (file)
@@ -31,7 +31,7 @@
     <DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
     <!-- Don't error due to lack of runtime-specific deps, we're referencing those directly -->
     <EnsureRuntimePackageDependencies>false</EnsureRuntimePackageDependencies>
-    <!-- Use a project-local packages folder. 'p' rather than 'packages': stay under char limit. -->
+    <!-- Use a project-local packages folder. 'p', not 'packages': max path breathing room. -->
     <RestorePackagesPath>$(IntermediateOutputPath)p</RestorePackagesPath>
     <!-- Do not build or nor build in publish output or deps -->
     <NoBuild>true</NoBuild>