|
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