0

Problem

I've found that my TypeScript files only compile when I save them. However, when I build or rebuild the project, they do not compile. I'm using TypeScript 0.9.1.1.

When I check the build output of a new TypeScript project, it includes the following entry:

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

But my project doesn't produce this in its build output.

Setup

Here are the relevant parts of the project file:

<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" />

What I've checked

  • The files compile on build in new TypeScript projects, so it should be possible.
  • The targets file exists in the correct location
  • The project file configuration shown above appears to be correct when compared with a new TypeScript project
  • Compiling a new TypeScript project, which works fine
  • Cannot compile TypeScript files in Visual Studio 2012, but the symptoms of the problem are different to mine, and it's not clear if the author was using the same setup
  • Typescript will not properly compile in VS2012, but the symptoms of the problem are different to mine
  • The build action for each TypeScript file is set to TypeScriptCompile as shown above

1 Answer 1

2

After comparing the project file with a new TypeScript project file, I narrowed the problem down to the following:

The TypeScript targets file must be imported after the C# targets file.

In the code in the question, fix the problem by moving the following line up:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.