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" />