2013-02-25 40 views
1

我在Visual Studio中有一个现有的TypeScript项目(Express for Web)。这个项目是用TypeScript 0.8.1创建的。为什么Visual Studio中的TypeScript项目的构建忽略TypeScriptTarget参数?

某些类使用属性,因此需要--target ES5编译器参数。

我刚刚更新了插件到TypeScript 0.8.2,并且遵循了定义here的步骤来启用“保存时编译”。这如所描述的那样工作,包括编译使用属性的类。

当我尝试生成项目,但是,我得到的错误,如: Config.ts (32,6): Property accessors are only available when targeting ES5 or greater

这里是我的.csproj文件中的相关部分:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" /> 
<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> 
    <TypeScriptTarget>ES5</TypeScriptTarget> 
    <TypeScriptIncludeComments>true</TypeScriptIncludeComments> 
    <TypeScriptSourceMap>true</TypeScriptSourceMap> 
</PropertyGroup> 

完整的文件可以看出here

为什么它可以编译单个文件,但如果我编译或重建整个项目,它不会起作用吗?

编辑:更新代码片段以显示<Import>标签也包含在内。

编辑2:添加到完整项目文件的要点的链接。

回答

2

您是否修改.csproj文件以导入TypeScript .targets文件(代替构建事件操作以调用TSC)?如果你只是更新PropertyGroup,你实际上不会通过将这些设置变成命令行标志的东西来调用编译器。

编辑:您需要Import标记在PropertyGroup之后(否则导入的文件不会“查看”您设置的属性值)。理想情况下,Import将是文件中的最后或最后一个 - 绝对是在所有改变它所依赖的设置的PropertyGroup之后。

+0

谢谢瑞安。是的,我还添加了标记,如Save-on-Compile wiki页面中所述。 – 2013-02-25 20:58:58

+0

你可以发布你的整个项目文件(也许在要点或什么的)? – 2013-02-25 21:51:46

+0

我已通过指向完整项目文件的链接更新了该问题。 – 2013-02-25 22:09:29

相关问题