Skip to content

Commit c8baff7

Browse files
Avoid ApplyOptimizations if up to date (#77944)
Co-authored-by: Jan Jones <janjones@microsoft.com>
1 parent 3349237 commit c8baff7

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

eng/targets/Imports.targets

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,4 +401,26 @@
401401
<Target Name="Workaround_CopyResolvedFilesToPublishPreserveNewest" BeforeTargets="_CopyResolvedFilesToPublishPreserveNewest" DependsOnTargets="GenerateManifests" />
402402

403403
<Import Project="DoNotGenerateSatelliteAssemblies_Workaround.targets" Condition="'$(GenerateSatelliteAssemblies)' == 'false'" />
404+
405+
<!--
406+
This target uses Inputs/Outputs so when it is skipped because they are up to date, ApplyOptimizations is skipped.
407+
This is a workaround for https://github.com/dotnet/roslyn/issues/77941.
408+
-->
409+
<Target Name="_DisableApplyOptimizations"
410+
BeforeTargets="_InitializeAssemblyOptimizationWithTargetAssembly">
411+
<PropertyGroup>
412+
<EnableNgenOptimization>false</EnableNgenOptimization>
413+
</PropertyGroup>
414+
</Target>
415+
<Target Name="_DetermineIfApplyOptimizationsShouldBeDisabled"
416+
AfterTargets="_DisableApplyOptimizations"
417+
Inputs="$(MSBuildAllProjects);@(IntermediateAssembly)"
418+
Outputs="@(IntermediateAssembly);$(PostCompileBinaryModificationSentinelFile)">
419+
<CallTarget Targets="_EnableApplyOptimizations" />
420+
</Target>
421+
<Target Name="_EnableApplyOptimizations">
422+
<PropertyGroup>
423+
<EnableNgenOptimization>true</EnableNgenOptimization>
424+
</PropertyGroup>
425+
</Target>
404426
</Project>

0 commit comments

Comments
 (0)