Сегодня я обновился до TypeScript 1.6, и теперь задача CopyPipelineFiles
не выполняется при попытке развернуть веб-приложения.
Я перенаправляю скомпилированный каталог вывода JavaScript TypeScript в scripts\compiled\
в настройках веб-проекта (через запись TypeScriptOutDir
в файле csproj), и до сих пор это всегда работало нормально. Файлы машинописного текста компилируются правильно и в правильный каталог (т.е. scripts\compiled\
в каталоге веб-проекта).
Однако задача CopyPipelineFiles
, похоже, запуталась в корневом каталоге файлов TypeScript и теперь всегда предполагает, что это корневой каталог веб-проекта. В итоге добавляет в путь несуществующие папки, например, после компиляции 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, а также на нашем сервере сборки TeamCity с установленным 1.6.