打字稿构建错误(TS5007)

时间:2014-10-05 18:05:59

标签: msbuild typescript

我一直试图通过visualstudio.com上的构建服务器来构建打字稿,而且我已经完成了将打字稿放入源控件的正常做法。但是我收到了以下问题:

  

VSTSC:错误TS5007:构建:   无法重新引用文件:   ' COMPUTE_PATHS_ONLY&#39 ;.   [C:\一个\ SRC \主\ RecruitCloud \ RecruitCloud.csproj]

我知道编码问题,但在所有示例中,我已经看到错误消息中已经命名了罪魁祸首文件。

我开始认为这可以归结为我在项目中编译的打字稿文件的数量。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

这是VsTsc任务的配置选项,即运行编译器的任务。它用于PreComputeCompileTypeScript目标。目的是使VsTsc任务完成所有动作,以运行编译器。这没有在您的机器上实现,它实际上 运行编译器。然后扔了一个合适的,因为它找不到名为COMPUTE_PATHS_ONLY的文件。

VsTsc任务存储在C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ TypeScript \ TypeScript.Tasks.dll中。用反编译器查看程序集:

protected override int ExecuteTool(string pathToTool, string responseFileCommands, string commandLineCommands)
{
    if (this.Configurations.Contains("--sourcemap"))
    {
        this.generateSourceMaps = true;
    }
    else
    {
        this.generateSourceMaps = false;
    }
    if (this.Configurations.Contains("--declaration"))
    {
        this.generateDeclarations = true;
    }
    else
    {
        this.generateDeclarations = false;
    }
    this.GenerateOutputPaths();
    if (!responseFileCommands.Contains("COMPUTE_PATHS_ONLY"))
    {
        return base.ExecuteTool(pathToTool, responseFileCommands, commandLineCommands);
    }
    return 0;
}

请注意!responseFileCommands.Contains()测试以绕过base.ExecuteTool()调用。

我只能想到你的机器上的方法看起来不像这样。最有可能的原因是你有一个过时的TypeScript.Tasks.dll版本。在安装了VS2013 Update 4的计算机上,它的日期为2014年11月11日,大小为27816字节。

答案 1 :(得分:0)

您最好的选择是简单地以Unicode编码重新保存所有文件。您可以通过快速PowerShell脚本(Change files' encoding recursively on Windows?

来完成
Get-ChildItem *.txt | ForEach-Object {
$content = $_ | Get-Content

Set-Content -PassThru $_.Fullname $content -Encoding UTF8 -Force}