VisualScript Online Build在TypeScript

时间:2016-12-19 19:53:22

标签: visual-studio typescript msbuild tsc

我正在Visual Studio在线HOsted服务器上构建我的项目,该服务器说它正在运行旧版本:

PreComputeCompileTypeScriptWithTSConfig:
  C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe has TypeScript 2.0.6 installed.  

当我尝试构建时,我遇到构建错误,我认为这些错误是由于--project" d:_work \ 9 \ s \ Main \ SRC \ Portal \ tsconfig.json"     CompileTypeScriptWithTSConfig:       C:\ Program Files(x86)\ Microsoft SDKs \ TypeScript \ 1.8 \ tsc.exe --project" d:_work \ 9 \ s \ Main \ SRC \ Portal \ tsconfig.json"     ## [错误] VSTSC(0,0):错误TS5023:构建:未知编译器选项' baseUrl'。     VSTSC:错误TS5023:构建:未知的编译器选项' baseUrl'。 [d:_work \ 9 \ S \主\ SRC \ MyProject.csproj]     ## [错误] VSTSC(0,0):错误TS5023:构建:未知的编译器选项'路径'。     VSTSC:错误TS5023:构建:未知的编译器选项'路径'。 [d:_work \ 9 \ S \主\ SRC \ MyProject.csproj]     ## [错误] VSTSC(0,0):错误TS5023:构建:未知编译器选项' typeRoots'。     VSTSC:错误TS5023:构建:未知的编译器选项' typeRoots'。 [d:_work \ 9 \ S \主\ SRC \ MyProject.csproj]     完成建筑项目" d:_work \ 9 \ s \ Main \ SRC \ MyProject.csproj" (默认目标) - 失败。     完成建筑项目" d:_work \ 9 \ s \ Main \ Solutions \ MyProject.sln" (默认目标) - 失败。

我有一个指定的

  

<TypeScriptToolsVersion>2.0</TypeScriptToolsVersion>

在我的项目文件中,但似乎无法识别。我错过了什么来迫使newwer TS版本运行?这可能是由其他原因造成的吗?

更新: 看来我可以降级到1.7并且它会识别(但显然会中断),但它不会使用2.0 - 这表明它没有安装在托管计算机上。手动将构建命令设置为

然后我收到错误

  

[错误] C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ TypeScript \ Microsoft.TypeScript.targets(165,5):

     

错误:您的项目文件使用不同版本的TypeScript   编译器和工具,而不是当前在此计算机上安装的。没有   编译器在C:\ Program Files(x86)\ Microsoft中找到   的SDK \打字稿\ 2.0 \ tsc.exe。您可以通过以下方法解决此问题   更改项目文件中的元素。

但根据这个:https://www.visualstudio.com/en-us/docs/build/admin/agents/hosted-pool#software - 它应该安装(使用Visual Studio 15),对吗?

1 个答案:

答案 0 :(得分:3)

测试结果与您相同,仍然使用1.8。

请参阅以下步骤来解决此问题:

  1. 向您的项目添加/安装Microsoft.TypeScript.MSBuild package
  2. 编辑项目文件(.csproj)

    a。)配置MSBuild以使用NuGet包的道具文件。

    <Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.0.6\build\Microsoft.TypeScript.MSBuild.props" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.0.6\build\Microsoft.TypeScript.MSBuild.props')" />
    <!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />-->
    

    b。)配置MSBuild以使用NuGet包的目标文件。

    <Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.0.6\build\Microsoft.TypeScript.MSBuild.targets" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.0.6\build\Microsoft.TypeScript.MSBuild.targets')" />
    <!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />-->
    

    如果是.Net Core项目,请将此代码添加到.xproj文件的部分

    <TypeScriptToolsVersion>2.0.6</TypeScriptToolsVersion>
    <TscToolPath>C:\Users\[user account]\.nuget\packages\Microsoft.TypeScript.MSBuild\2.0.6\tools\tsc</TscToolPath>