我使用 VisualStudio 2015 创建包含TypeScript的Web服务。
我目前正在使用 TypeScript版本2.03 ,编译由[ Microsoft.TypeScript.MSBuild ] NuGet包处理。
常见项目树:
我可以正常编译并在本地运行我的webproject而不会出现任何错误或问题。 所有 *。ts 文件都会被翻译为 *。js 文件。
项目目录中的示例:
如果我想创建Azure包( cspkg 文件)或直接将我的项目发布到Azure,则所有 * .ts 指向 *。js < / strong>未包含编译文件。
普通(纯) *。js 文件包含在内!
我查看了 [C:\ AzureTmp] 目录,遗漏了所有编译的TypeScript文件
我查看了详细的日志输出,看到 tsc.exe 被调用而没有错误
我将[ 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 文件)?
答案 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配置节点之上。