TypeScript文件在保存时编译,但在构建时不编译

时间:2014-01-06 22:42:34

标签: visual-studio-2010 visual-studio typescript

问题

我发现我的TypeScript文件只在我保存时编译。但是,当我构建或重建项目时,它们不会编译。我正在使用TypeScript 0.9.1.1。

当我检查 new TypeScript项目的构建输出时,它包含以下条目:

CompileTypeScript:
  C:\Program Files\Microsoft SDKs\TypeScript\tsc.exe  --module AMD --sourcemap --target ES3 "app.ts"

但是我的项目在它的构建输出中没有产生这个。

设置

以下是项目文件的相关部分:

<ItemGroup>
    <TypeScriptCompile Include="Scripts\app\example.ts" />
</ItemGroup>
<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptIncludeComments>true</TypeScriptIncludeComments>
    <TypeScriptSourceMap>true</TypeScriptSourceMap>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptIncludeComments>false</TypeScriptIncludeComments>
    <TypeScriptSourceMap>false</TypeScriptSourceMap>
</PropertyGroup>
<Import Project="$(VSToolsPath)\TypeScript\Microsoft.TypeScript.targets" />
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

我检查了什么

  • 文件在 new TypeScript项目中构建时编译,因此应该可以。
  • 目标文件存在于正确的位置
  • 与新的TypeScript项目相比,上面显示的项目文件配置是正确的
  • 编译一个工作正常的新TypeScript项目
  • Cannot compile TypeScript files in Visual Studio 2012,但问题的症状与我的不同,目前尚不清楚作者是否使用相同的设置
  • Typescript will not properly compile in VS2012,但问题的症状与我的不同
  • 每个TypeScript文件的构建操作设置为TypeScriptCompile,如上所示

1 个答案:

答案 0 :(得分:2)

将项目文件与新的TypeScript项目文件进行比较后,我将问题缩小到以下几点:

必须在C#目标文件之后导入TypeScript目标文件。

在问题的代码中,通过移动以下行来解决问题:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />