Skip to content

Commit abc04f2

Browse files
authored
Clean-up ILLink targets and avoid binplacing (#80102)
Clean-up illink.targets file, remove outdated logic that doesn't work and isn't used anymore. Avoid binplacing and instead use the P2P protocol to communicate a projects illink settings. Such information is then available in consuming projects like sfx.proj and oob.proj and avoids IO operations (binplacing).
1 parent 7bbee52 commit abc04f2

File tree

3 files changed

+70
-128
lines changed

3 files changed

+70
-128
lines changed

eng/illink.targets

Lines changed: 53 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
11
<Project>
2+
23
<PropertyGroup>
34
<IsTrimmable Condition="'$(IsTrimmable)' == ''">true</IsTrimmable>
45
<PrepareResourcesDependsOn>_EmbedILLinkXmls;$(PrepareResourcesDependsOn)</PrepareResourcesDependsOn>
56
<TargetsTriggeredByCompilation Condition="'$(DesignTimeBuild)' != 'true'">$(TargetsTriggeredByCompilation);ILLinkTrimAssembly</TargetsTriggeredByCompilation>
6-
</PropertyGroup>
7-
8-
<!-- Flow the IsTrimmable property down to consuming projects, in order for oob.proj
9-
to exclude non trimmable assemblies. -->
10-
<ItemDefinitionGroup>
11-
<TargetPathWithTargetPlatformMoniker>
12-
<IsTrimmable>$(IsTrimmable)</IsTrimmable>
13-
</TargetPathWithTargetPlatformMoniker>
14-
</ItemDefinitionGroup>
157

16-
<!-- Inputs and outputs of ILLinkTrimAssembly -->
17-
<PropertyGroup>
188
<ILLinkDirectory Condition="'$(ILLinkDirectory)' == ''">$(MSBuildProjectDirectory)\ILLink\</ILLinkDirectory>
199
<ILLinkTrimAssemblyPath>$(IntermediateOutputPath)$(TargetName)$(TargetExt)</ILLinkTrimAssemblyPath>
2010
<ILLinkTrimAssemblySymbols>$(IntermediateOutputPath)$(TargetName).pdb</ILLinkTrimAssemblySymbols>
@@ -40,82 +30,64 @@
4030

4131
<!-- if building a PDB, tell illink to rewrite the symbols file -->
4232
<ILLinkRewritePDBs Condition="'$(ILLinkRewritePDBs)' == '' and '$(DebugSymbols)' != 'false'">true</ILLinkRewritePDBs>
43-
</PropertyGroup>
4433

45-
<ItemGroup>
46-
<None Include="$(ILLinkDescriptorsLibraryBuildXml)" Condition="'$(ILLinkDescriptorsLibraryBuildXml)' != ''" />
47-
<None Include="@(ILLinkSubstitutionsXmls)" />
48-
</ItemGroup>
49-
50-
<PropertyGroup>
51-
<NetCoreAppCurrentBuildSettings Condition="'$(NetCoreAppCurrentBuildSettings)' == ''">$(NetCoreAppCurrent)-$(TargetOS)-$(Configuration)-$(TargetArchitecture)</NetCoreAppCurrentBuildSettings>
52-
<ILLinkTrimAssemblyArtifactsRootDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'ILLinkTrimAssembly', '$(NetCoreAppCurrentBuildSettings)'))</ILLinkTrimAssemblyArtifactsRootDir>
53-
<ILLinkTrimAssemblyRuntimePackSuppressionsXmlsDir>$(ILLinkTrimAssemblyArtifactsRootDir)suppressions-xmls\</ILLinkTrimAssemblyRuntimePackSuppressionsXmlsDir>
54-
<ILLinkTrimAssemblyOOBSuppressionsXmlsDir>$(ILLinkTrimAssemblyArtifactsRootDir)oob-suppressions-xmls\</ILLinkTrimAssemblyOOBSuppressionsXmlsDir>
55-
<ILLinkTrimAssemblySuppressionsXmlsDir Condition="'$(IsNETCoreAppSrc)' == 'true'">$(ILLinkTrimAssemblyRuntimePackSuppressionsXmlsDir)</ILLinkTrimAssemblySuppressionsXmlsDir>
56-
<ILLinkTrimAssemblySuppressionsXmlsDir Condition="'$(IsNETCoreAppSrc)' != 'true'">$(ILLinkTrimAssemblyOOBSuppressionsXmlsDir)</ILLinkTrimAssemblySuppressionsXmlsDir>
34+
<ILLinkResourcesSubstitutionIntermediatePath>$(IntermediateOutputPath)ILLink.Resources.Substitutions.xml</ILLinkResourcesSubstitutionIntermediatePath>
35+
<GenerateResourcesSubstitutions Condition="'$(GenerateResourcesSubstitutions)' == '' and '$(StringResourcesPath)' != ''">true</GenerateResourcesSubstitutions>
5736
</PropertyGroup>
5837

59-
<!-- Custom binplacing for pre/post-trimming and reports that is useful for analysis
60-
Must be enabled by setting BinPlaceILLinkTrimAssembly=true
61-
-->
62-
<ItemGroup Condition="'$(BinPlaceILLinkTrimAssembly)' == 'true'">
63-
<BinPlaceTargetFrameworks Include="$(NetCoreAppCurrentBuildSettings)">
64-
<RuntimePath>$(ILLinkTrimAssemblyArtifactsRootDir)trimmed</RuntimePath>
65-
<ItemName>TrimmedItem</ItemName>
66-
</BinPlaceTargetFrameworks>
67-
<BinPlaceTargetFrameworks Include="$(NetCoreAppCurrentBuildSettings)">
68-
<RuntimePath>$(ILLinkTrimAssemblyArtifactsRootDir)reports</RuntimePath>
69-
<ItemName>TrimmingReport</ItemName>
70-
</BinPlaceTargetFrameworks>
71-
<BinPlaceTargetFrameworks Include="$(NetCoreAppCurrentBuildSettings)">
72-
<RuntimePath>$(ILLinkTrimAssemblyArtifactsRootDir)pretrimmed</RuntimePath>
73-
<ItemName>PreTrimmedItem</ItemName>
74-
</BinPlaceTargetFrameworks>
75-
</ItemGroup>
76-
7738
<ItemGroup>
78-
<ILLinkSuppressionsXmls Condition="Exists('$(ILLinkSuppressionsXmlFile)')"
79-
Include="$(ILLinkSuppressionsXmlFile)" />
80-
<ILLinkSuppressionsXmls Condition="Exists('$(ILLinkSuppressionsConfigurationSpecificXmlFile)')"
81-
Include="$(ILLinkSuppressionsConfigurationSpecificXmlFile)" />
82-
<ILLinkSuppressionsXmls Condition="Exists('$(ILLinkSuppressionsLibraryBuildXmlFile)')"
83-
Include="$(ILLinkSuppressionsLibraryBuildXmlFile)" />
84-
<ILLinkSuppressionsXmls Update="@(ILLinkSuppressionsXmls)" TargetPath="%(FileName).$(AssemblyName).xml" />
39+
<ILLinkSuppressionsXmls Include="$(ILLinkSuppressionsXmlFile)"
40+
Condition="Exists('$(ILLinkSuppressionsXmlFile)')" />
41+
<ILLinkSuppressionsXmls Include="$(ILLinkSuppressionsConfigurationSpecificXmlFile)"
42+
Condition="Exists('$(ILLinkSuppressionsConfigurationSpecificXmlFile)')" />
43+
<ILLinkSuppressionsXmls Include="$(ILLinkSuppressionsLibraryBuildXmlFile)"
44+
Condition="Exists('$(ILLinkSuppressionsLibraryBuildXmlFile)')" />
45+
<ILLinkSuppressionsXmls Update="@(ILLinkSuppressionsXmls)"
46+
TargetPath="%(FileName).$(AssemblyName).xml" />
8547
</ItemGroup>
8648

8749
<ItemGroup>
88-
<BinPlaceTargetFrameworks Include="$(NetCoreAppCurrent)">
89-
<RuntimePath>$(ILLinkTrimAssemblySuppressionsXmlsDir)</RuntimePath>
90-
<ItemName>ILLinkSuppressionsXmls</ItemName>
91-
</BinPlaceTargetFrameworks>
92-
<BinPlaceTargetFrameworks Include="$(NetCoreAppCurrent)-$(TargetOS.ToLowerInvariant())">
93-
<RuntimePath>$(ILLinkTrimAssemblySuppressionsXmlsDir)</RuntimePath>
94-
<ItemName>ILLinkSuppressionsXmls</ItemName>
95-
</BinPlaceTargetFrameworks>
50+
<ILLinkSubstitutionsXmls Include="$(ILLinkResourcesSubstitutionIntermediatePath)"
51+
Condition="'$(GenerateResourcesSubstitutions)' == 'true'" />
52+
<None Include="@(ILLinkSubstitutionsXmls)" />
53+
<None Include="$(ILLinkDescriptorsLibraryBuildXml)"
54+
Condition="'$(ILLinkDescriptorsLibraryBuildXml)' != ''" />
9655
</ItemGroup>
9756

98-
<Target Name="_EmbedILLinkXmls"
99-
DependsOnTargets="_CombineILLinkDescriptorsXmls;_CombineILLinkSubstitutionsXmls;_CombineILLinkLinkAttributesXmls">
57+
<!-- Flow the IsTrimmable property down to consuming projects, in order for oob.proj
58+
to exclude non trimmable assemblies. -->
59+
<ItemDefinitionGroup>
60+
<TargetPathWithTargetPlatformMoniker>
61+
<IsTrimmable>$(IsTrimmable)</IsTrimmable>
62+
</TargetPathWithTargetPlatformMoniker>
63+
</ItemDefinitionGroup>
10064

101-
<ItemGroup Condition="'$(ILLinkDescriptorsXml)' != ''">
102-
<EmbeddedResource Include="$(ILLinkDescriptorsXml)">
103-
<LogicalName>ILLink.Descriptors.xml</LogicalName>
104-
</EmbeddedResource>
65+
<!-- Flow the ILLinkSuppressionsXmls item list down to consuming projects, in order for sfx.proj and oob.proj to
66+
receive the suppression files. -->
67+
<Target Name="AnnotateTargetPathWithILLinkSuppressionsXmlsProp"
68+
AfterTargets="GetTargetPathWithTargetPlatformMoniker">
69+
<ItemGroup>
70+
<TargetPathWithTargetPlatformMoniker ILLinkSuppressionsXmls="@(ILLinkSuppressionsXmls->Metadata('FullPath'))" />
10571
</ItemGroup>
72+
</Target>
10673

107-
<ItemGroup Condition="'$(ILLinkSubstitutionsXml)' != ''">
108-
<EmbeddedResource Include="$(ILLinkSubstitutionsXml)">
109-
<LogicalName>ILLink.Substitutions.xml</LogicalName>
110-
</EmbeddedResource>
111-
</ItemGroup>
74+
<Target Name="_EmbedILLinkXmls"
75+
DependsOnTargets="_CombineILLinkDescriptorsXmls;
76+
_CombineILLinkSubstitutionsXmls;
77+
_CombineILLinkLinkAttributesXmls">
78+
<ItemGroup>
79+
<EmbeddedResource Include="$(ILLinkDescriptorsXml)"
80+
LogicalName="ILLink.Descriptors.xml"
81+
Condition="'$(ILLinkDescriptorsXml)' != ''" />
11282

113-
<ItemGroup Condition="'$(ILLinkLinkAttributesXml)' != ''">
114-
<EmbeddedResource Include="$(ILLinkLinkAttributesXml)">
115-
<LogicalName>ILLink.LinkAttributes.xml</LogicalName>
116-
</EmbeddedResource>
117-
</ItemGroup>
83+
<EmbeddedResource Include="$(ILLinkSubstitutionsXml)"
84+
LogicalName="ILLink.Substitutions.xml"
85+
Condition="'$(ILLinkSubstitutionsXml)' != ''" />
11886

87+
<EmbeddedResource Include="$(ILLinkLinkAttributesXml)"
88+
LogicalName="ILLink.LinkAttributes.xml"
89+
Condition="'$(ILLinkLinkAttributesXml)' != ''" />
90+
</ItemGroup>
11991
</Target>
12092

12193
<UsingTask TaskName="CombineLinkerXmlFiles" AssemblyFile="$(ILLinkTasksAssembly)" Condition="'$(ILLinkTasksAssembly)' != ''" />
@@ -135,15 +107,6 @@
135107
</ItemGroup>
136108
</Target>
137109

138-
<PropertyGroup>
139-
<ILLinkResourcesSubstitutionIntermediatePath>$(IntermediateOutputPath)ILLink.Resources.Substitutions.xml</ILLinkResourcesSubstitutionIntermediatePath>
140-
<GenerateResourcesSubstitutions Condition="'$(GenerateResourcesSubstitutions)' == '' and '$(StringResourcesPath)' != ''">true</GenerateResourcesSubstitutions>
141-
</PropertyGroup>
142-
143-
<ItemGroup Condition="'$(GenerateResourcesSubstitutions)' == 'true'">
144-
<ILLinkSubstitutionsXmls Include="$(ILLinkResourcesSubstitutionIntermediatePath)" />
145-
</ItemGroup>
146-
147110
<!-- If a library uses string resources, the following target generates a substitution xml that will be embedded on the
148111
library so that if a consumer wants to run the linker they can specify a feature switch to strip out all resources
149112
from the assembly. -->
@@ -218,10 +181,8 @@
218181
</PropertyGroup>
219182
</Target>
220183

221-
<!-- ILLinkTrimAssembly
222-
Examines the "input assembly" for IL that is unreachable from public API and trims that,
223-
rewriting the assembly to an "output assembly"
224-
-->
184+
<!-- Examines the "input assembly" for IL that is unreachable from public API and trims that,
185+
rewriting the assembly to an "output assembly" -->
225186
<UsingTask TaskName="ILLink" AssemblyFile="$(ILLinkTasksAssembly)" Condition="'$(ILLinkTasksAssembly)' != ''" />
226187
<Target Name="ILLinkTrimAssembly"
227188
Condition="'$(ILLinkTrimAssembly)' == 'true'"
@@ -260,18 +221,18 @@
260221
<ILLinkArgs Condition="'$(ILLinkDisableIPConstProp)' == 'true'">$(ILLinkArgs) --disable-opt ipconstprop</ILLinkArgs>
261222
</PropertyGroup>
262223

263-
<MakeDir Directories="$(ILLinkTrimInputPath)" />
264-
265224
<!-- Move the assembly into a subdirectory for ILLink -->
266225
<Move SourceFiles="$(ILLinkTrimAssemblyPath)"
267-
DestinationFolder="$(ILLinkTrimInputPath)"
268-
/>
226+
DestinationFolder="$(ILLinkTrimInputPath)">
227+
<Output TaskParameter="MovedFiles" ItemName="FileWrites" />
228+
</Move>
269229

270230
<!-- Move the PDB into a subdirectory for ILLink if we are rewriting PDBs -->
271231
<Move SourceFiles="$(ILLinkTrimAssemblySymbols)"
272232
DestinationFolder="$(ILLinkTrimInputPath)"
273-
Condition="'$(ILLinkRewritePDBs)' == 'true' and Exists('$(ILLinkTrimAssemblySymbols)')"
274-
/>
233+
Condition="'$(ILLinkRewritePDBs)' == 'true' and Exists('$(ILLinkTrimAssemblySymbols)')">
234+
<Output TaskParameter="MovedFiles" ItemName="FileWrites" />
235+
</Move>
275236

276237
<ItemGroup>
277238
<_DependencyDirectoriesTemp Include="@(ReferencePathWithRefAssemblies->'%(RootDir)%(Directory)')" />
@@ -333,21 +294,4 @@
333294
<Message Text="Assembly trimming report: $(AsmDiffList)" />
334295
</Target>
335296

336-
<!-- Similar to _CheckForCompileOutputs and runs in the same places,
337-
always set these even if compile didn't run. -->
338-
<Target Name="_CheckForILLinkTrimAssemblyOutputs"
339-
BeforeTargets="CopyFilesToOutputDirectory;_CleanGetCurrentAndPriorFileWrites"
340-
Condition="'$(ILLinkTrimAssembly)' == 'true'">
341-
<ItemGroup>
342-
<PreTrimmedItem Condition="Exists('$(ILLinkTrimInputAssembly)')" Include="$(ILLinkTrimInputAssembly)" />
343-
<PreTrimmedItem Condition="'$(ILLinkRewritePDBs)' == 'true' and Exists('$(ILLinkTrimInputSymbols)')" Include="$(ILLinkTrimInputSymbols)" />
344-
<FileWrites Include="@(PreTrimmedItem)" />
345-
346-
<TrimmedItem Condition="Exists('$(ILLinkTrimAssemblyPath)')" Include="$(ILLinkTrimAssemblyPath)" />
347-
<TrimmedItem Condition="'$(ILLinkRewritePDBs)' == 'true' and Exists('$(ILLinkTrimAssemblySymbols)')" Include="$(ILLinkTrimAssemblySymbols)" />
348-
349-
<TrimmingReport Condition="Exists('$(AsmDiffReport)')" Include="$(AsmDiffReport)" />
350-
<TrimmingReport Condition="Exists('$(AsmDiffList)')" Include="$(AsmDiffList)" />
351-
</ItemGroup>
352-
</Target>
353297
</Project>

src/libraries/oob.proj

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,12 @@
3737
<Target Name="GetTrimOOBAssembliesInputs"
3838
DependsOnTargets="ResolveProjectReferences">
3939
<PropertyGroup>
40-
<OOBAssembliesTrimmedArtifactsPath>$([MSBuild]::NormalizeDirectory('$(ILLinkTrimAssemblyArtifactsRootDir)', 'trimmed-oobs'))</OOBAssembliesTrimmedArtifactsPath>
41-
<OOBAssembliesMarkerFile>$(IntermediateOutputPath)linker-$(TargetArchitecture)-marker.txt</OOBAssembliesMarkerFile>
40+
<OOBAssembliesTrimDir>$([MSBuild]::NormalizeDirectory('$(IntermediateOutputPath)', 'illink-$(TargetArchitecture)'))</OOBAssembliesTrimDir>
41+
<OOBAssembliesTrimMarkerFile>$(OOBAssembliesTrimDir)marker.txt</OOBAssembliesTrimMarkerFile>
4242
</PropertyGroup>
4343

4444
<ItemGroup>
45-
<!-- Include suppression XML files bin-placed in earlier per-library linker run. -->
46-
<OOBLibrarySuppressionsXml Include="$(ILLinkTrimAssemblyOOBSuppressionsXmlsDir)*.xml" />
45+
<OOBLibrarySuppressionsXml Include="@(OOBAssembly->Metadata('ILLinkSuppressionsXmls'))" />
4746

4847
<OOBAssemblyToTrim Include="@(OOBAssembly->WithMetadataValue('IsTrimmable', 'true'))" />
4948
<OOBAssemblyReference Include="@(OOBAssembly->WithMetadataValue('IsTrimmable', 'false'));
@@ -56,7 +55,7 @@
5655
Condition="'$(RefOnly)' != 'true' and '@(OOBAssembly)' != ''"
5756
DependsOnTargets="GetTrimOOBAssembliesInputs;PrepareForAssembliesTrim"
5857
Inputs="$(ILLinkTasksAssembly);@(OOBAssemblyToTrim);@(OOBAssemblyReference);@(OOBLibrarySuppressionsXml)"
59-
Outputs="$(OOBAssembliesMarkerFile)">
58+
Outputs="$(OOBAssembliesTrimMarkerFile)">
6059
<Message Text="$(MSBuildProjectName) -> Trimming $(OutputRid) out-of-band assemblies with ILLinker..." Importance="high" />
6160

6261
<PropertyGroup>
@@ -66,17 +65,17 @@
6665
<OOBILLinkArgs Condition="'@(OOBLibrarySuppressionsXml)' != ''" >$(OOBILLinkArgs) --link-attributes &quot;@(OOBLibrarySuppressionsXml->'%(FullPath)', '&quot; --link-attributes &quot;')&quot;</OOBILLinkArgs>
6766
</PropertyGroup>
6867

68+
<MakeDir Directories="$(OOBAssembliesTrimDir)" />
6969
<ILLink AssemblyPaths=""
7070
RootAssemblyNames="@(OOBAssemblyToTrim)"
7171
ReferenceAssemblyPaths="@(OOBAssemblyReference)"
72-
OutputDirectory="$(OOBAssembliesTrimmedArtifactsPath)"
72+
OutputDirectory="$(OOBAssembliesTrimDir)"
7373
ExtraArgs="$(OOBILLinkArgs)"
7474
ToolExe="$(_DotNetHostFileName)"
7575
ToolPath="$(_DotNetHostDirectory)" />
7676

7777
<!-- Create a marker file which serves as the target's output to enable incremental builds. -->
78-
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('$(OOBAssembliesMarkerFile)'))" />
79-
<Touch Files="$(OOBAssembliesMarkerFile)"
78+
<Touch Files="$(OOBAssembliesTrimMarkerFile)"
8079
AlwaysCreate="true" />
8180
</Target>
8281

src/libraries/sfx.proj

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,16 @@
2424
<!-- Import the illink file which contains some of the logic required to illink the shared framework assemblies. -->
2525
<Import Project="$(RepositoryEngineeringDir)illink.targets" />
2626

27-
<Target Name="GetTrimSharedFrameworkAssembliesInputs">
27+
<Target Name="GetTrimSharedFrameworkAssembliesInputs"
28+
DependsOnTargets="ResolveProjectReferences">
2829
<PropertyGroup>
29-
<SharedFrameworkAssembliesMarkerFile>$(IntermediateOutputPath)linker-$(TargetArchitecture)-marker.txt</SharedFrameworkAssembliesMarkerFile>
30+
<SharedFrameworkAssembliesTrimDir>$([MSBuild]::NormalizeDirectory('$(IntermediateOutputPath)', 'illink-$(TargetArchitecture)'))</SharedFrameworkAssembliesTrimDir>
31+
<SharedFrameworkAssembliesTrimMarkerFile>$(SharedFrameworkAssembliesTrimDir)linker-marker.txt</SharedFrameworkAssembliesTrimMarkerFile>
3032
</PropertyGroup>
3133

3234
<ItemGroup>
33-
<!-- Include suppression XML files bin-placed in earlier per-library linker run. -->
34-
<SharedFrameworkSuppressionsXml Include="$(ILLinkTrimAssemblyRuntimePackSuppressionsXmlsDir)*.xml" />
35-
<!-- Collect CoreLib suppression XML files not bin-placed in earlier per-library linker run. CoreLib doesn't use bin-place logic. -->
35+
<SharedFrameworkSuppressionsXml Include="@(SharedFrameworkAssembly->Metadata('ILLinkSuppressionsXmls'))" />
3636
<SharedFrameworkSuppressionsXml Include="$(CoreLibSharedDir)ILLink\ILLink.Suppressions.LibraryBuild.xml" />
37-
<SharedFrameworkSuppressionsXml Condition="'$(RuntimeFlavor)' == 'CoreCLR'" Include="$(CoreClrProjectRoot)System.Private.CoreLib\src\ILLink\ILLink.Suppressions.LibraryBuild.xml" />
3837
</ItemGroup>
3938
</Target>
4039

@@ -43,30 +42,30 @@
4342
DependsOnTargets="ResolveProjectReferences;GetTrimSharedFrameworkAssembliesInputs;PrepareForAssembliesTrim"
4443
Condition="'$(RefOnly)' != 'true'"
4544
Inputs="@(SharedFrameworkAssembly);@(SharedFrameworkSuppressionsXml);$(ILLinkTasksAssembly)"
46-
Outputs="$(SharedFrameworkAssembliesMarkerFile)">
45+
Outputs="$(SharedFrameworkAssembliesTrimMarkerFile)">
4746
<Message Text="$(MSBuildProjectName) -> Trimming $(OutputRid) shared framework assemblies with ILLinker..." Importance="high" />
4847

4948
<PropertyGroup>
5049
<SharedFrameworkILLinkArgs>$(ILLinkArgs)</SharedFrameworkILLinkArgs>
5150
<!-- update debug symbols -->
5251
<SharedFrameworkILLinkArgs>$(SharedFrameworkILLinkArgs) -b true</SharedFrameworkILLinkArgs>
53-
<SharedFrameworkILLinkArgs Condition="'@(SharedFrameworkSuppressionsXml)' != ''" >$(SharedFrameworkILLinkArgs) --link-attributes &quot;@(SharedFrameworkSuppressionsXml->'%(FullPath)', '&quot; --link-attributes &quot;')&quot;</SharedFrameworkILLinkArgs>
52+
<SharedFrameworkILLinkArgs Condition="'@(SharedFrameworkSuppressionsXml)' != ''" >$(SharedFrameworkILLinkArgs) --link-attributes &quot;@(SharedFrameworkSuppressionsXml, '&quot; --link-attributes &quot;')&quot;</SharedFrameworkILLinkArgs>
5453
</PropertyGroup>
5554

5655
<ItemGroup>
5756
<SharedFrameworkAssembly RootMode="library" />
5857
</ItemGroup>
5958

59+
<MakeDir Directories="$(SharedFrameworkAssembliesTrimDir)" />
6060
<ILLink AssemblyPaths=""
6161
RootAssemblyNames="@(SharedFrameworkAssembly)"
62-
OutputDirectory="$([MSBuild]::NormalizeDirectory('$(ILLinkTrimAssemblyArtifactsRootDir)', 'trimmed-runtimepack'))"
62+
OutputDirectory="$(SharedFrameworkAssembliesTrimDir)"
6363
ExtraArgs="$(SharedFrameworkILLinkArgs)"
6464
ToolExe="$(_DotNetHostFileName)"
6565
ToolPath="$(_DotNetHostDirectory)" />
6666

6767
<!-- Create a marker file which serves as the target's output to enable incremental builds. -->
68-
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('$(SharedFrameworkAssembliesMarkerFile)'))" />
69-
<Touch Files="$(SharedFrameworkAssembliesMarkerFile)"
68+
<Touch Files="$(SharedFrameworkAssembliesTrimMarkerFile)"
7069
AlwaysCreate="true" />
7170
</Target>
7271

0 commit comments

Comments
 (0)