Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 将TypeScript生成事件转换为外部工具命令_Visual Studio_Visual Studio 2012_Typescript_Build Events_External Tools - Fatal编程技术网

Visual studio 将TypeScript生成事件转换为外部工具命令

Visual studio 将TypeScript生成事件转换为外部工具命令,visual-studio,visual-studio-2012,typescript,build-events,external-tools,Visual Studio,Visual Studio 2012,Typescript,Build Events,External Tools,我正在使用Visual Studio 2012 Express for Web处理TypeScript文件。由于WebEssentials插件不适用于Express Edition,并且每次更新脚本时重建整个项目的时间开始太长,因此我希望将以下生成事件(从TypeScript项目模板)转换为“外部工具”命令,以便放置在工具栏上 <Target Name="BeforeBuild"> <Message Text="Compiling TypeScript files" /&g

我正在使用Visual Studio 2012 Express for Web处理TypeScript文件。由于WebEssentials插件不适用于Express Edition,并且每次更新脚本时重建整个项目的时间开始太长,因此我希望将以下生成事件(从TypeScript项目模板)转换为“外部工具”命令,以便放置在工具栏上

<Target Name="BeforeBuild">
  <Message Text="Compiling TypeScript files" />
  <Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
  <Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

不幸的是。。。这让我有点不知所措。我找不到有关
$(TypeScriptSourceMap)
的任何文档,也找不到
@()
%()
宏的任何文档。它似乎也不喜欢我直接复制命令。(即使在转换HTML实体之后。)

为了模拟此生成事件,我可以在“外部工具”对话框中输入什么

我将尝试编写一个PS脚本或一些解决方案,但这将缺少仅使用“TypeScriptCompile”生成操作处理文件的功能。

$(TypeScriptSourceMap)
来自项目文件前面的大约4行。当处于调试配置时,它只是--sourcemap,否则是
“”

这里的
@()
语法基本上意味着“对于构建操作为
TypeScriptCompile
的每个项目项,将其完整路径放在双引号中,并用空格连接这些结果项

TypeScript项目的一个新出现的最佳实践是有一个如下所示的“project.ts”文件:

project.ts

/// <reference path="file1.ts" />
/// <reference path="file2.ts" />
/// ... and so on
/// <reference path="project.ts" />

class alpha { ... }
/// <reference path="project.ts" />

class beta { ... }
//
/// 
///……等等
file1.ts

/// <reference path="file1.ts" />
/// <reference path="file2.ts" />
/// ... and so on
/// <reference path="project.ts" />

class alpha { ... }
/// <reference path="project.ts" />

class beta { ... }
//
类alpha{…}
file2.ts

/// <reference path="file1.ts" />
/// <reference path="file2.ts" />
/// ... and so on
/// <reference path="project.ts" />

class alpha { ... }
/// <reference path="project.ts" />

class beta { ... }
//
类beta{…}

通过这种设置,您只需运行
tsc project.ts
tsc project.ts--out app.ts
,就会发生正确的事情。

很有趣。您知道
@()
语法记录在哪里吗?tsc抱怨找不到名为“(TypeScriptCompile”)的文件,因此,在执行外部工具时,它似乎不会被解析。无论如何,我可能会切换到使用project.ts技巧,但知道这一点肯定很好。使用您建议的技巧时,会出现一个非常奇怪的错误:
文件的未知扩展名:“scripts\project.ts”。只允许使用.ts和.d.ts扩展名。
当我提供完整路径时也是如此。疯狂的“错误扩展名”错误已在0.8.1.1中修复;我建议升级。哈,是的。刚刚意识到文件丢失了。我在路径中丢失了一个目录。再次感谢。