2012-10-24 70 views
13

我下载并安装了VS 2012的TypeScript扩展,我通过手动将ts文件拖放到tsc.exe文件中得到了我的第一个示例编译,因为没有其他方式来编译文件将工作。无法在Visual Studio 2012中编译TypeScript文件

我不想在每次我想调试页面时手动执行此操作!我在网上阅读了大约5篇文章,并且没有任何解决方案能够工作。我试着加入打字稿编译器在Windows PATH中,我尝试下载并通过NuGet包管理器Sholo东西安装,我已经试过这些页面:

  1. Using TypeScript in cshtml files
  2. Visual Studio TypeScript Options
  3. Debugging TypeScript code with Visual Studio
  4. Cannot compile typescript using tsc node module
  5. TypeScript - Visual Studio - d3
  6. Visual Studio 2012 TypeScript project ignoring two files during compile
  7. TypeScript/Visual Studio 2012/Compilation parameters
  8. Using TypeScript in an existing Visual Studio Web Site project
  9. Visual Studio TypeScript Options
  10. Compile generated files in Visual Studio

,而不是一个单一的解决方案已经奏效。

我甚至已经下载并安装了Visual Studio的Web Essentials插件,并进入选项菜单,然后选择“编译Build = True的所有TypeScript文件”和“Save = True编译TypeScript” - 但没有任何效果。

我已阅读了codeplex网站上的整个TypeScript网站,规范,甚至他们的讨论标签。

当我按F5/Debug/Build时,如何在保存对.ts文件的更改时编译TypeScript进行编译?

*我真的不想要任何第三方脚本/插件等,除非它是绝对必要的。我见过其中的一些,只是......没有意义。我可能只是写纯粹的JavaScript。

+1

您可以在Visual Studio中创建TypeScript项目吗?创建新项目时它是否显示为选项? –

+0

@MattBurland New Project对话框中的唯一选项是“带TypeScript的HTML应用程序”。但是'.cshtml'文件或者Razor-code在这个项目中不起作用。我尝试将所有基于WebMatrix/Razor的引用和bin文件夹添加到此项目类型中。但是,是的,该选项确实有效,唯一的问题是我无法获得任何服务器端代码文件的工作。奇怪的。 – Arrow

+0

我保持这个问题的更新,因为似乎有许多人遇到同样的问题,但没有一个解决方案似乎适用于所有人。截至2012年10月25日,我仍然遇到这个问题。所以如果任何人有任何想法或可能的解决方案,我将不胜感激您的帮助! – Arrow

回答

5

当我将.js文件重命名为.ts时,我遇到了类似的问题。您必须右键单击并将新的TypeScript文件添加到您的项目中,以便您的.csproj识别在此.ts文件中应使用TypeScript编译器。

当您看到箭头展开.ts文件时,您会知道这是正确的。

enter image description here

+0

我刚刚去添加新项目,然后向下滚动列表,并没有TypeScript文件那里:( - 并且应该有,因为我也安装了TypeScript TypeScriptLanguageService(我读某处应该安装文件扩展名,所以它显示在列表中)在'... SDKs/TypeScript /'文件夹中的东西 – Arrow

+0

http://www.microsoft.com/en-us/download/details.aspx?id=34790 – ryan

+0

谢谢。那是我在昨天发现了关于TypeScript的第一件事情。:) – Arrow

4

如果更改.js文件转换为.ts文件,你可以到Visual Studio中的属性面板,改变生成操作TypeScriptCompile。这是更改文件时缺少的内容。这可以帮助您避免删除和重新添加文件。

+0

这对我不起作用。 – Arrow

+1

您可能还需要更新您的项目文件:http://www.stevefenton.co.uk/Content/Blog/Date/201210/Blog/Adding-TypeScript-To-An-Existing-Visual-Studio-Project/ – Fenton

+0

我刚刚阅读链接,哪个项目文件是这样的?我有'packages.config','web.config',并且我也有Visual Studio解决方案文件。我的网站是一个“网站”,而不是“项目” - 我假设有一个区别,因为这两种类型生成不同的文件。 – Arrow

1

我有同样的问题。我无法将新的.ts文件添加到项目中。从.js重命名为.ts文件后未编译。它甚至没有在命令行中使用tsc进行编译。

BUT!在Windows资源管理器中重新创建文件后,它已成功编译。然后在Scripts文件夹中的Windows资源管理器(不是Visual Studio)中手动创建文件并将其包含到项目中 - 所有WORKS。我无法检测到这两个文件之间的变化。但是,如果您在资源管理器中创建文本文件,请将其重命名为.ts,然后将其包含在项目中,并将文件的构建操作设置为TypeScriptCompile - 它可以工作。

+1

很高兴你找到了这样一个恼人的问题的解决方法。 :-)我写了一个小应用程序(http://onthefly.codeplex.com/),只需点击一下按钮,即可将文件发送到编译器。这似乎是最合乎逻辑的事情,因为我找不出任何其他编译方式。但是,谢谢你的回答。很高兴知道还有其他解决此问题的方法。 :) – Arrow

0

我有同样的问题。我更新了Web Essentials的延伸,并解决了问题。如果您有Web必需的延伸,您可以尝试。

11

你必须确保BuildAction的必须是TypeScriptCompile你.ts文件。 我已经将这些行添加到(.csproj)项目文件的末尾。 (关闭项目标签之前) 而且它似乎工作。

<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> 
<TypeScriptTarget>ES3</TypeScriptTarget> 
<TypeScriptIncludeComments>true</TypeScriptIncludeComments> 
<TypeScriptSourceMap>true</TypeScriptSourceMap> 
<TypeScriptModuleKind>AMD</TypeScriptModuleKind> 
</PropertyGroup> 
<PropertyGroup Condition="'$(Configuration)' == 'Release'"> 
<TypeScriptTarget>ES3</TypeScriptTarget> 
<TypeScriptIncludeComments>false</TypeScriptIncludeComments> 
<TypeScriptSourceMap>false</TypeScriptSourceMap> 
<TypeScriptModuleKind>AMD</TypeScriptModuleKind> 
</PropertyGroup> 
<Import Project="$(VSToolsPath)\TypeScript\Microsoft.TypeScript.targets" /> 
+0

谢谢男人!真的帮助! – Eduardo

1

插头

我创建了一个NuGet包,增加了一个afterbuild目标项目,使所有包含的TS文件被编译为JS。

安装,包装TypeScript.Compile

0

请检查是否有无效的打字稿。有一些TypeScript错误不会显示在错误列表中,但它们会阻止TypeScript Compile-On-Save并在Visual Studio状态栏中显示Output generation failed消息。

这些是打字稿错误可能导致此:

  • export荷兰国际集团的一类,其是不是一个模块(V 0.9.5)的内部。

请让我知道,如果有更多这样的错误,我会在这里添加它们。

相关问题