2013-02-25 55 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

相關問題