【问题标题】:Can't deploy from VS2013 (or TeamCity) after TypeScript 1.6 upgradeTypeScript 1.6 升级后无法从 VS2013(或 TeamCity)部署
【发布时间】: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


    【解决方案1】:

    Filed a bug report with the TypeScript team and they've confirmed it. 似乎是编译器如何计算绝对路径的问题。现在的解决方法是为 outDir 和 rootDir 显式设置相对路径,因此类似于以下内容:

    <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
      <TypeScriptOutDir>Scripts\compiled</TypeScriptOutDir>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Configuration)' == 'Release'">
      <TypeScriptOutDir>Scripts\compiled</TypeScriptOutDir>
    </PropertyGroup>
    <PropertyGroup>
      <TypeScriptRootDir>Scripts\typescript</TypeScriptRootDir>
    </PropertyGroup>
    

    在我的例子中,我只是将 outDir 和 rootDir 都移到了属性组,因为我不需要在构建之间切换 outputDir,如下所示:

    <PropertyGroup>
      <TypeScriptRootDir>Scripts\typescript</TypeScriptRootDir>
      <TypeScriptOutDir>Scripts\compiled</TypeScriptOutDir>
    </PropertyGroup>
    

    【讨论】:

      猜你喜欢
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 2018-03-14
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      相关资源
      最近更新 更多