Msbuild devenv总是重建我的项目,因为typescript文件比pdb文件新

Msbuild devenv总是重建我的项目,因为typescript文件比pdb文件新,msbuild,devenv,Msbuild,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'. 那么,我如

我有一个关于打字脚本的项目。德文不断地重建这个项目。诊断输出包含以下行:

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'.
那么,我如何解决这个问题呢?前面提到的typescript文件确实比PDB更新。但是PDB不是typescript编译的输出

以下是我如何编译我的typescript文件:

<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>
当然,
@(OutputJavaScripts)
仅列出预期的
.js
文件。那里没有PDB文件

那么为什么devenv会将typescript文件与PDB文件匹配呢?我怎么修理它

编辑1


我想澄清一下。它实际上并不重新编译typescript或C#文件(这是它第一次重新编译typescript文件,但仅此而已)。它启动构建,因为typescript比PDB更新,但是它识别出PDB依赖项实际上没有改变。javascript文件也是如此——它们都是最新的。所以实际上什么都没有重建,但是为什么要首先进入构建序列呢

我也遇到了类似的问题,但使用的是
txt
文件而不是typescript文件。我打开了
csproj
文件,找到了声明文本文件的部分,并将其移动到声明一些项目引用的部分上方。基本上,高于任何二进制类型的文件。重新加载项目后,MSBuild将不会生成它,除非其中的文件已实际更改。

我对
js
文件也有类似问题。将其
构建操作
设置为无,重新编译,然后返回到
内容
,重新编译解决了问题。

这非常有趣。您能在更改前后发布csproj文件中的代码片段吗?
<TypeScriptCompile Include="Scripts\Benefits\Modules\PPACA\CalendarSetup.ts" />