今天我更新到 TypeScript 1.6,现在CopyPipelineFiles
尝试部署 Web 应用程序时任务失败。
我将 TypeScript 的已编译 JavaScript 输出目录重定向到scripts\compiled\
Web 项目的设置中(通过TypeScriptOutDir
csproj 文件中的条目),直到现在这一直运行良好。Typescript 文件正在正确编译,并编译到正确的目录(即scripts\compiled\
在 web 项目目录下)。
但是,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 构建服务器上。