【发布时间】:2014-04-04 03:38:47
【问题描述】:
我有一个带有打字稿的项目。 devenv 不断重建这个项目。诊断输出包含这一行:
Project 'Benefits' is not up to date. Input file 'C:\abc\UI\BenefitsWeb\Scripts\Benefits\Modules\PPACA\ApprovalScreen.ts' is modified after output file 'C:\abc\UI\BenefitsWeb\bin\Dayforce.Web.Benefits.pdb'.
那么,我该如何解决这个问题呢?上述打字稿文件确实比 PDB 更新。但是 PDB 不是打字稿编译的输出!!!
这是我编译打字稿文件的方法:
<PropertyGroup>
<CompileDependsOn>
$(CompileDependsOn);
CompileTypeScript
</CompileDependsOn>
</PropertyGroup>
<Target Name="GetInputs">
...
</Target>
<Target Name="GetOutputs">
...
</Target>
<Target Name="CompileTypeScript" DependsOnTargets="GetInputs;GetOutputs" Inputs="@(InputTypeScripts)" Outputs="@(OutputJavaScripts)">
...
</Target>
项目指定TypeScriptCompile项目组中的打字稿文件,例如:
<TypeScriptCompile Include="Scripts\Benefits\Modules\PPACA\CalendarSetup.ts" />
当然,@(OutputJavaScripts) 仅列出预期的 .js 文件。那里没有 PDB 文件。
那么 devenv 是如何将 typescript 文件与 PDB 文件匹配的呢?我该如何解决?
编辑 1
我想澄清一下。它实际上并没有重新编译 typescript 或 C# 文件(这是它第一次重新编译 typescript 文件,但仅此而已)。它开始构建,因为 typescript 比 PDB 更新,但随后它认识到 PDB 依赖项实际上没有改变。 javascript 文件也是如此——它们都是最新的。所以实际上并没有重建任何东西,但是为什么要首先进入构建序列!
【问题讨论】: