Visual Studio 在线构建在 TypeScript 上失败
Visual Studio Online Build failing on TypeScript
我正在 Visual Studio 在线托管服务器上构建我的项目,它说它是 运行 旧版本:
PreComputeCompileTypeScriptWithTSConfig:
C:\Program Files (x86)\Microsoft SDKs\TypeScript.8\tsc.exe has TypeScript 2.0.6 installed.
当我尝试构建时,出现构建错误,我认为这些错误是由 --project "d:_work\s\Main\SRC\Portal\tsconfig.json" 引起的
使用 TSConfig 编译 TypeScript:
C:\Program Files (x86)\Microsoft SDKs\TypeScript.8\tsc.exe --project "d:_work\s\Main\SRC\Portal\tsconfig.json"
##[错误]VSTSC(0,0):错误 TS5023:构建:未知编译器选项 'baseUrl'。
VSTSC:错误 TS5023:构建:未知编译器选项 'baseUrl'。 [d:_work\s\Main\SRC\MyProject.csproj]
##[错误]VSTSC(0,0):错误 TS5023:构建:未知编译器选项 'paths'。
VSTSC:错误 TS5023:构建:未知编译器选项 'paths'。 [d:_work\s\Main\SRC\MyProject.csproj]
##[错误]VSTSC(0,0):错误 TS5023:构建:未知编译器选项 'typeRoots'。
VSTSC:错误 TS5023:构建:未知编译器选项 'typeRoots'。 [d:_work\s\Main\SRC\MyProject.csproj]
完成构建项目 "d:_work\s\Main\SRC\MyProject.csproj"(默认目标)——失败。
完成构建项目 "d:_work\s\Main\Solutions\MyProject.sln"(默认目标)-- 失败。
我有指定的
<TypeScriptToolsVersion>2.0</TypeScriptToolsVersion>
在我的项目文件中,但它似乎没有被识别。我缺少什么来强制更新 TS 版本到 运行?这可能是由其他原因引起的吗?
更新:
看来我可以降级到 1.7 并且它会识别(但明显中断),但它不会使用 2.0 - 这表明它没有安装在托管机器上。手动将构建命令设置为
后
然后我得到错误
[error]C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\Microsoft.TypeScript.targets(165,5):
Error : Your project file uses a different version of the TypeScript
compiler and tools than is currently installed on this machine. No
compiler was found at C:\Program Files (x86)\Microsoft
SDKs\TypeScript.0\tsc.exe. You may be able to fix this problem by
changing the element in your project file.
但是根据这个:https://www.visualstudio.com/en-us/docs/build/admin/agents/hosted-pool#software - 它应该安装(使用 Visual Studio 15),对吗?
测试结果和你一样,还是用1.8。
请参考以下步骤处理此问题:
- Add/Install Microsoft.TypeScript.MSBuild package 到您的项目
编辑您的项目文件 (.csproj)
a.) 配置 MSBuild 以使用 NuGet 包的 props 文件。
<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.0.6\tools\tsc</TscToolPath>
我正在 Visual Studio 在线托管服务器上构建我的项目,它说它是 运行 旧版本:
PreComputeCompileTypeScriptWithTSConfig:
C:\Program Files (x86)\Microsoft SDKs\TypeScript.8\tsc.exe has TypeScript 2.0.6 installed.
当我尝试构建时,出现构建错误,我认为这些错误是由 --project "d:_work\s\Main\SRC\Portal\tsconfig.json" 引起的 使用 TSConfig 编译 TypeScript: C:\Program Files (x86)\Microsoft SDKs\TypeScript.8\tsc.exe --project "d:_work\s\Main\SRC\Portal\tsconfig.json" ##[错误]VSTSC(0,0):错误 TS5023:构建:未知编译器选项 'baseUrl'。 VSTSC:错误 TS5023:构建:未知编译器选项 'baseUrl'。 [d:_work\s\Main\SRC\MyProject.csproj] ##[错误]VSTSC(0,0):错误 TS5023:构建:未知编译器选项 'paths'。 VSTSC:错误 TS5023:构建:未知编译器选项 'paths'。 [d:_work\s\Main\SRC\MyProject.csproj] ##[错误]VSTSC(0,0):错误 TS5023:构建:未知编译器选项 'typeRoots'。 VSTSC:错误 TS5023:构建:未知编译器选项 'typeRoots'。 [d:_work\s\Main\SRC\MyProject.csproj] 完成构建项目 "d:_work\s\Main\SRC\MyProject.csproj"(默认目标)——失败。 完成构建项目 "d:_work\s\Main\Solutions\MyProject.sln"(默认目标)-- 失败。
我有指定的
<TypeScriptToolsVersion>2.0</TypeScriptToolsVersion>
在我的项目文件中,但它似乎没有被识别。我缺少什么来强制更新 TS 版本到 运行?这可能是由其他原因引起的吗?
更新: 看来我可以降级到 1.7 并且它会识别(但明显中断),但它不会使用 2.0 - 这表明它没有安装在托管机器上。手动将构建命令设置为
后然后我得到错误
[error]C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\Microsoft.TypeScript.targets(165,5):
Error : Your project file uses a different version of the TypeScript compiler and tools than is currently installed on this machine. No compiler was found at C:\Program Files (x86)\Microsoft SDKs\TypeScript.0\tsc.exe. You may be able to fix this problem by changing the element in your project file.
但是根据这个:https://www.visualstudio.com/en-us/docs/build/admin/agents/hosted-pool#software - 它应该安装(使用 Visual Studio 15),对吗?
测试结果和你一样,还是用1.8。
请参考以下步骤处理此问题:
- Add/Install Microsoft.TypeScript.MSBuild package 到您的项目
编辑您的项目文件 (.csproj)
a.) 配置 MSBuild 以使用 NuGet 包的 props 文件。
<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.0.6\tools\tsc</TscToolPath>