在发布到Azure时,将忽略TypeScript 2.0创建的JS文件

时间:2016-10-26 12:57:05

标签: azure visual-studio-2015 typescript2.0

方案

我使用 VisualStudio 2015 创建包含TypeScript的Web服务。

我目前正在使用 TypeScript版本2.03 ,编译由[ Microsoft.TypeScript.MSBuild ] NuGet包处理。

常见项目树:

Common project tree

什么在起作用

我可以正常编译并在本地运行我的webproject而不会出现任何错误或问题。 所有 *。ts 文件都会被翻译为 *。js 文件。

项目目录中的示例:

directory

什么不起作用

如果我想创建Azure包( cspkg 文件)或直接将我的项目发布到Azure,则所有 * .ts 指向 *。js < / strong>未包含编译文件。

普通(纯) *。js 文件包含在内!

到目前为止我做了什么

  • 我查看了 [C:\ AzureTmp] 目录,遗漏了所有编译的TypeScript文件

  • 我查看了详细的日志输出,看到 tsc.exe 被调用而没有错误

output1

  • 我将[ Microsoft.TypeScript.MSBuild ]的NuGet包版本切换回 1.8.11 以及所有 *。js 按预期包含

  • 我将[ Microsoft.TypeScript.MSBuild ]的NuGet包版本更改为 2.06 ,所有 *。js 获取再次

问题

为什么使用[ Microsoft.TypeScript.MSBuild ]版本&gt; = 2.03创建的已编译TypeScript文件未移至 [C:\ AzureTmp] 目录并且在结果中不包含在Azure包中( cspkg 文件)?

2 个答案:

答案 0 :(得分:0)

您使用https://visualstudiogallery.msdn.microsoft.com/3b329021-cd7a-4a01-86fc-714c2d05bb6c吗?

如果不更改解决方案中的任何内容,请确保未在发布配置文件中选中“删除目的地中的其他文件”&gt;设置&gt;文件发布选项。

答案 1 :(得分:0)

我找到了解决方案。

这一行:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />

项目文件中的

接近文件末尾。

只需在文本编辑器中打开项目文件,然后将其移到顶部附近。 请注意,新位置应位于项目文件中的TypeScript配置节点之上。