.net Visual Studio忽略MSBuild文件(csproj)自定义

.net Visual Studio忽略MSBuild文件(csproj)自定义,.net,visual-studio,msbuild,.net,Visual Studio,Msbuild,注意:VisualStudio2010SP1/MSBuild 4.0 我对这个bug非常着迷,我不明白为什么VisualStudio会这样。我正在为特定解决方案中的项目编写一个自定义的.targets文件。我已经编辑了.csproj文件,以便: <Include Project="..\MyTargets.targets" /> 我的第一个想法是我拿错了文件。我核实了文件,它是正确的。然后我检查了一下,看它是否过时了。让visual studio进行一些更改、保存和运行。Visua

注意:VisualStudio2010SP1/MSBuild 4.0

我对这个bug非常着迷,我不明白为什么VisualStudio会这样。我正在为特定解决方案中的项目编写一个自定义的
.targets
文件。我已经编辑了
.csproj
文件,以便:

<Include Project="..\MyTargets.targets" />
我的第一个想法是我拿错了文件。我核实了文件,它是正确的。然后我检查了一下,看它是否过时了。让visual studio进行一些更改、保存和运行。Visual studio的新更改已生效,但仍然没有运行我的目标

所以我现在绝望了。我在目标文件中输入了一个刺耳的语法错误。MSBuild爆炸,Visual Studio成功编译项目

  • 我做错了什么
  • Visual Studio是否不使用MSBuild文件
  • 它是否调用某个超级机密目标而不是Microsoft.Common.targets中的“Build”
  • 为什么msbuild会以一种方式运行,而studio会以另一种方式运行,我认为它们是为了协同工作而设计的

总结上述评论,对导入项目文件的更改不会触发重新加载,对导入项目的更改也不会导致重新加载导入。需要重新加载解决方案文件才能捕获导入中所做的更改。

对.targets文件进行更改后是否关闭并重新打开解决方案文件?有趣的是,Visual Studio是否缓存msbuild文件或其他文件?我尚未关闭解决方案,但已多次重新加载项目。VS将缓存项目导入的任何msbuild文件。对项目本身的更改将导致重新加载项目,但不会重新加载导入的文件,这就是为什么需要重新加载解决方案。我觉得没有重新加载解决方案很愚蠢,我认为重新加载项目就足够了。很高兴得到VS缓存的澄清。感谢相似的问题,重新加载解决方案对我来说根本不起作用。在我的.psproj文件(PowerShell项目)中,我的构建目标中有一个刺耳的
;msbuild失败,但从Visual Studio 2013生成成功,输出为零。。。
<PropertyGroup>
  <BuildDependsOn>
    MyTargetGoesHere;
    $(BuildDependsOn)
  </BuildDependsOn>
</PropertyGroup>