【发布时间】:2015-10-30 01:19:15
【问题描述】:
今天我更新到 TypeScript 1.6,现在尝试部署 Web 应用程序时 CopyPipelineFiles 任务失败。
我将 TypeScript 编译后的 JavaScript 输出目录重定向到 Web 项目设置中的 scripts\compiled\(通过 csproj 文件中的 TypeScriptOutDir 条目),直到现在这一直运行良好。 Typescript 文件正在正确编译,并正确编译到正确的目录(即 web 项目目录下的 scripts\compiled\)。
但是,CopyPipelineFiles 任务似乎对 TypeScript 文件的根目录感到困惑,现在总是假定它是 Web 项目的根目录。结果,它将文件夹添加到不存在的路径中,例如,在编译scripts\foo.ts 之后,而不是抓取scripts\compiled\foo.js,MSBuild 正在寻找\scripts\compiled\scripts\foo.js。我尝试在输出目录中使用$(ProjectDir),我也尝试将TypeScriptRootDir 设置为适当的根目录(例如scripts\),但问题仍然存在。
我能够纠正这种情况的唯一方法是删除输出目录并允许将编译后的 JavaScript 文件输出到它们对应的 TypeScript 文件的相同位置。
以下是我收到的真实错误示例,其中 TypeScript 文件的路径为 scripts\account\app.ts:
将文件 scripts\compiled\scripts\account\app.js 复制到 obj\Release\AspnetCompileMerge\Source\scripts\compiled\scripts\account\app.js 失败。找不到路径'scripts\compiled\scripts\account\app.js'的一部分
这发生在所有安装了 Typescript 1.6 的本地机器上,以及我们安装了 1.6 的 TeamCity 构建服务器上。
【问题讨论】:
标签: msbuild typescript webdeploy typescript1.6