Visual Studio 2012中的TypeScript未编译。

21

我已经在我的Visual Studio 2012安装中安装了 TypeScript (v0.9.1.1),但是我无法在构建过程中编译我的 .ts 文件(请参见下面的截图)。

我已经尝试了这里发布的许多不同解决方案,但是没有一个适用于我。

请注意,我可以创建TypeScript项目,问题在于Visual Studio无法编译/创建 .js 文件。

输入图像描述

输入图像描述

4个回答

22

尝试在您的TypeScript文件中引入错误并构建项目。它是否显示错误面板?

此外,js文件不是解决方案的一部分。您会在磁盘上查找它们吗?

还要检查您的项目文件中是否有以下条目。大致如下:

<ItemGroup>
    <TypeScriptCompile Include="app.ts" />
  </ItemGroup>

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

1
谢谢!问题在于我的项目是用Visual Studio 2010制作的,所以它没有那些行。现在它显示“TypeScript编译器被给了一个空的配置字符串,这是不寻常和可疑的。”,但似乎.js文件已经创建了。对此有什么建议吗? - StockBreak
1
我建议使用安装了TypeScript插件的VS2012重新创建项目。可能有很多问题,这是你最好的选择。无论你有什么代码,你都可以将它简单地移动到新创建的解决方案中。 - stride
2
这对我有用。不过,我必须将“import”元素添加到csproj文件底部,因为“$(VSToolsPath)”在中间某个地方初始化了。 - willem

6

正如您在0.9.1版本的补丁说明中所看到的那样

.js文件不再是默认项目的一部分。从0.9.1开始,我们不再将它们嵌套在TypeScript文件下面。这更多地是一种视觉上的变化,但它也让我们在幕后更清洁地管理.js文件。

因此,只需创建一个TypeScript文件(在您的情况下为app.ts),然后简单地向您的页面添加引用即可

<head>
  <script src="app.js"></script>
</head>

1

我通过右键单击typescript文件,选择属性,然后将BuildAction设置为none来解决了这个问题,如下图所示:

enter image description here


我们应该能够在构建时编译而没有错误。我这里有类似的问题。我的错误是在设置“Build Action: TypeScript Compile”时出现的,“From Output: VSTSC : tsc.js(764, 13) JavaScript runtime error : Automation server can't create object”。 - Rob Koch

0
请检查您是否有无效的TypeScript。有一些TypeScript错误不会显示在错误列表中,但它们会阻止TypeScript编译并在Visual Studio状态栏中显示“输出生成失败”的消息。
这些是可能导致此问题的TypeScript错误:
  • 导出一个不在模块内的类(v0.9.5)。
如果有更多类似的错误,请告诉我,我会在这里添加它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接