我有一个带有打字稿的项目。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 文件也是如此——它们都是最新的。所以实际上什么都没有重建,但是为什么要首先进入构建序列!