|
19 | 19 | <SatelliteResourceLanguages>en</SatelliteResourceLanguages> |
20 | 20 | <IsPackable>true</IsPackable> |
21 | 21 | <PackAsTool>true</PackAsTool> |
| 22 | + <PublishSingleFile>true</PublishSingleFile> |
| 23 | + <PublishSelfContained>true</PublishSelfContained> |
| 24 | + <DebugType>embedded</DebugType> |
| 25 | + <IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract> |
22 | 26 | </PropertyGroup> |
23 | 27 | <ItemGroup> |
24 | 28 | <None |
|
71 | 75 | $(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput> |
72 | 76 | </PropertyGroup> |
73 | 77 |
|
| 78 | + <ItemGroup Label="Trimming Settings"> |
| 79 | + <TrimmerRootAssembly Include="Serilog" /> |
| 80 | + <TrimmerRootAssembly Include="Ionide.ProjInfo.ProjectSystem" /> |
| 81 | + </ItemGroup> |
| 82 | + |
74 | 83 | <!-- workaround for not being able to have p2p dependencies in tool output dir |
75 | 84 | https://github.com/nuget/home/issues/3891#issuecomment-377319939 --> |
76 | 85 | <Target |
|
83 | 92 |
|
84 | 93 | <Target Name="BuildAllStandloneApplications"> |
85 | 94 | <ItemGroup> |
| 95 | + <!-- Make MSBuild Items out of the RIDs so we can batch across them --> |
86 | 96 | <_RIDS Include="$(RuntimeIdentifiers)" /> |
| 97 | + <!-- Make MSBuild Items out of the TFMs so we can batch across them. Create NUM_RIDS items |
| 98 | + per-TFM because we want to build each TFM for all supported platforms. --> |
| 99 | + <_TFMS |
| 100 | + Include="$(TargetFrameworks)" |
| 101 | + RID="%(_RIDS.Identity)" /> |
| 102 | + <!-- Turn the _TFMS items into requests to build this project (fsautocomplete.fsproj) with |
| 103 | + different parameters. This pattern is often used to to parallel builds of the same project in |
| 104 | + MSBuild logic. --> |
87 | 105 | <_RIDSpecificFSACBuild |
88 | 106 | Include="$(MSBuildThisFile)" |
89 | | - AdditionalProperties="RuntimeIdentifier=%(_RIDS.Identity)" /> |
| 107 | + AdditionalProperties="RuntimeIdentifier=%(_TFMS.RID);TargetFramework=%(_TFMS.Identity)" /> |
90 | 108 | </ItemGroup> |
91 | 109 |
|
| 110 | + <!-- Ask MSBuild to build all of the requests we just made. The MSBuild Task recognizes the |
| 111 | + AdditionalProperties metadata and will apply that to each specific build, we can specify the things |
| 112 | + that are common to all of the builds here. Unsetting RuntimeIdentifiers and TargetFrameworks |
| 113 | + ensures that the SDK targets detect that these are single-RID/single-TFM builds accurately, and |
| 114 | + since we're pretty certain there are no data dependencies here we can have the builds operate in |
| 115 | + parallel. --> |
92 | 116 | <MSBuild |
93 | 117 | Projects="@(_RIDSpecificFSACBuild)" |
94 | 118 | Targets="Publish" |
95 | | - Properties="Configuration=Release;PublishSingleFile=true;PublishTrimmed=true;" |
96 | | - RemoveProperties="RuntimeIdentifiers" |
| 119 | + Properties="Configuration=Release;SelfContained=true" |
| 120 | + RemoveProperties="RuntimeIdentifiers;TargetFrameworks" |
97 | 121 | BuildInParallel="true" /> |
98 | 122 | </Target> |
99 | 123 |
|
|
0 commit comments