title: Error MSB4064: The "ComputeInputAndOutputOnly" parameter is not supported by the "VsTsc" task
body: <p>After upgrading to Typescript 2.7.2 (from 2.4) I get the following error on the build server:</p>
  
  <p><strong>packages\Microsoft.TypeScript.MSBuild.2.7.2\tools\Microsoft.TypeScript.targets(378,7): Error MSB4064: The "ComputeInputAndOutputOnly" parameter is not supported by the "VsTsc" task. Verify the parameter exists on the task, and it is a settable public instance property.</strong></p>
  
  <p>The project brings in the Microsoft.TypeScript.MSBuild as a package dependency. Packages.config includes:</p>
  
  <pre><code>  &lt;package id="Microsoft.TypeScript.Compiler" version="2.7.2" targetFramework="net462" developmentDependency="true" /&gt;
    &lt;package id="Microsoft.TypeScript.MSBuild" version="2.7.2" targetFramework="net462" developmentDependency="true" /&gt;
  </code></pre>
  
  <p>Using the packaged compiler is preferable to installing Typescript on the server (as you would on a local machine) because we have a lot of build servers and keeping them up to date whenever a project needs a newer version of typescript would be impractical. </p>
  
  <p>Digging into the Microsoft.TypeScript.targets in the packages folder I can see the offending parameter is used:</p>
  
  <pre><code>&lt;Target Name="CompileTypeScriptWithTSConfig"
      Condition="'$(BuildingProject)' != 'false' AND '@(ConfigFiles)' != '' AND '$(DesignTimeBuild)' != 'true'"
      DependsOnTargets="$(CompileTypeScriptDependsOn)"
      BeforeTargets="$(CompileTypeScriptBeforeTargets)"
      AfterTargets="$(CompileTypeScriptAfterTargets)"
      Inputs="@(TypeScriptInputFiles)" Outputs="@(GeneratedJavascript)"&gt;
      &lt;!--For some reason, ItemGroup operations are occurring even when the target is skipped--&gt;
      &lt;!--So we use the CompileRan property to ensure the ItemGroup operations only run when it isn't skipped--&gt;
      &lt;CreateProperty Value="true"&gt;
        &lt;Output TaskParameter="ValueSetByTask" PropertyName="CompileRan" /&gt;
      &lt;/CreateProperty&gt;
      &lt;ItemGroup&gt;
        &lt;emittedFiles Remove="@(emittedFiles)" Condition="'$(CompileRan)' == 'true'" /&gt;
        &lt;GeneratedJavascript Remove="@(GeneratedJavascript)" Condition="'$(CompileRan)' == 'true'" /&gt;
      &lt;/ItemGroup&gt;
      &lt;VsTsc
        ToolPath="$(TscToolPath)"
        ToolExe="$(TscToolExe)"
        IsFileSystemCaseSensitive="$(IsFileSystemCaseSensitive)"
        TSJavaScriptFile="$(TSJavaScriptFile)"
        PreferredUILang="$(PreferredUILang)"
        TSConfigFile="%(TSConfigFilesWithOutputLogs.Identity)"
        YieldDuringToolExecution="$(TscYieldDuringToolExecution)"
        ProjectDir="$(TypeScriptProjectDir)"
        ToolsVersion="$(TypeScriptEffectiveToolsVersion)"
        TypeScriptCompileBlocked="$(TypeScriptCompileBlocked)"
        ComputeInputAndOutputOnly="false"
        OutputLogFile="%(TSConfigFilesWithOutputLogs.OutputLog)"
        OutputLogDirectory="$(TSCompilerOutputLogDirectory)"&gt;
  
        &lt;Output TaskParameter="GeneratedJavascript" ItemName="emittedFiles" /&gt;
      &lt;/VsTsc&gt;
      &lt;ItemGroup&gt;
        &lt;GeneratedJavascript Include="@(emittedFiles)" KeepDuplicates="false" Condition="'$(CompileRan)' == 'true'" /&gt;
      &lt;/ItemGroup&gt;
    &lt;/Target&gt;
  </code></pre>
  
  <p>Could this be due to an old version of MSBuild on the server? The server downloads the Microsoft.TypeScript.MSBuild package as part of the build process, so there's no way I can modify the target file within the package. Any help or work arounds would be much appreciated. Thanks!</p>