Browse Source

Use a response file for GenAPI commands
- work around dotnet/arcade#4021

Doug Bunting 6 years ago
parent
commit
111462e0c2
1 changed files with 13 additions and 7 deletions
  1. 13 7
      eng/targets/ReferenceAssembly.targets

+ 13 - 7
eng/targets/ReferenceAssembly.targets

@@ -61,15 +61,21 @@
     </ItemGroup>
 
     <PropertyGroup>
+      <_GenApiFile>$([MSBuild]::NormalizePath('$(ArtifactsDir)', 'log', 'GenAPI.rsp'))</_GenApiFile>
       <_GenAPICommand Condition="'$(MSBuildRuntimeType)' == 'core'">"$(DotNetTool)" --roll-forward-on-no-candidate-fx 2 "$(_GenAPIPath)"</_GenAPICommand>
-      <_GenAPICmd>$(_GenAPICommand)</_GenAPICmd>
-      <_GenAPICmd>$(_GenAPICmd) "$(TargetPath)"</_GenAPICmd>
-      <_GenAPICmd>$(_GenAPICmd) --lib-path "@(_ReferencePathDirectories)"</_GenAPICmd>
-      <_GenAPICmd>$(_GenAPICmd) --out "$(_RefSourceFileOutputPath)"</_GenAPICmd>
-      <_GenAPICmd>$(_GenAPICmd) --header-file "$(RepoRoot)/eng/LicenseHeader.txt"</_GenAPICmd>
-      <_GenAPICmd>$(_GenAPICmd) --exclude-api-list "$(RepoRoot)/eng/GenAPI.exclusions.txt"</_GenAPICmd>
+      <_GenAPICmd>$(_GenAPICommand) @"$(_GenApiFile)"</_GenAPICmd>
+      <_GenApiArguments><![CDATA[
+"$(TargetPath)"
+--lib-path "@(_ReferencePathDirectories, '%3B')"
+--out "$(_RefSourceFileOutputPath)"
+--header-file "$(RepoRoot)/eng/LicenseHeader.txt"
+--exclude-api-list "$(RepoRoot)/eng/GenAPI.exclusions.txt"
+]]>
+      </_GenApiArguments>
     </PropertyGroup>
 
+    <WriteLinesToFile File="$(_GenApiFile)" Lines="$(_GenApiArguments)" Overwrite="true" />
+
     <MakeDir Directories="$(_RefSourceOutputPath)" />
     <Message Importance="High" Text="Generating $(_RefSourceFileOutputPath)" />
     <Exec Command="$(_GenAPICmd)" />
@@ -96,4 +102,4 @@
     </ItemGroup>
   </Target>
 
-</Project>
+</Project>