如何让Visual Studio 2017在新.NET Core风格类库项目构建时编译TypeScript
刚好我之前处理过类似的场景,针对你用的VS2017 15.3.5、TypeScript 2.5.2 SDK,还有.NET Core风格的类库项目,要让TypeScript在MSBuild构建时自动编译,按下面的步骤来就行:
配置MSBuild自动编译TypeScript(.NET Core类库项目)
1. 编辑你的.csproj项目文件
右键项目 → 选择编辑项目文件,打开csproj的XML内容,添加以下配置:
首先在<Project>节点内添加基础属性和编译规则:
<PropertyGroup> <!-- 指定TypeScript版本,和你安装的2.5.2完全匹配 --> <TypeScriptToolsVersion>2.5.2</TypeScriptToolsVersion> <!-- 可选:设置编译后JS文件的输出目录,比如和项目输出放在一起 --> <TypeScriptOutDir>$(OutputPath)scripts</TypeScriptOutDir> <!-- 按需添加其他TypeScript编译选项 --> <TypeScriptTarget>ES5</TypeScriptTarget> <TypeScriptModule>CommonJS</TypeScriptModule> <TypeScriptSourceMap>true</TypeScriptSourceMap> <TypeScriptRemoveComments>false</TypeScriptRemoveComments> </PropertyGroup> <!-- 声明要编译的TypeScript文件,用通配符匹配所有.ts文件,也可以指定特定文件 --> <ItemGroup> <TypeScriptCompile Include="**/*.ts" Exclude="node_modules/**/*.ts" /> </ItemGroup> <!-- 把TypeScript编译任务绑定到MSBuild的Build流程中 --> <Target Name="AutoCompileTypeScript" BeforeTargets="Build"> <MSBuild Projects="$(MSBuildProjectFile)" Targets="CompileTypeScript" Properties="Configuration=$(Configuration)" /> </Target>
2. (可选)用tsconfig.json管理编译配置
如果需要更灵活的TypeScript配置(比如指定文件包含/排除规则、高级编译选项),可以在项目根目录创建tsconfig.json,然后在csproj中添加如下配置让MSBuild读取这个文件:
<PropertyGroup> <TypeScriptConfig>tsconfig.json</TypeScriptConfig> </PropertyGroup>
此时csproj中设置的TypeScript属性会被tsconfig.json的配置覆盖,推荐用这种方式管理复杂的编译规则。
3. 验证配置是否生效
保存csproj文件,回到VS执行生成解决方案,然后查看你指定的输出目录(比如bin/Debug/netstandard2.0/scripts),应该能看到编译后的.js和.map文件。如果没生成,可以查看输出窗口的MSBuild日志,排查是否有路径或配置错误。
额外注意事项
- 确认VS已安装TypeScript 2.5.2 SDK:打开VS安装器 → 修改 → 勾选TypeScript 2.5 SDK(如果之前没装的话补充安装)。
- 如果项目中有
node_modules目录,记得在<TypeScriptCompile>的Exclude中排除,避免编译第三方库的TS文件。
内容的提问来源于stack exchange,提问作者Trygve
相关产品推荐
相关产品推荐

