Msbuild 如何在VisualStudio中重新导入.targets文件?

Msbuild 如何在VisualStudio中重新导入.targets文件?,msbuild,Msbuild,我在visualstudio工作。在我看来,如果我更改了导入的.targets文件中的任何内容,则在构建主项目时,.targets的新版本不会重新导入到主项目中。如果我重新打开我的项目(即关闭并再次打开Visual Studio),然后启动build,-.targets的新版本可以工作 是否可以告诉Visual Studio在任何重建时导入.targets 我尝试使用“重建”和“清理”解决方案和项目,但没有任何结果。重新评估导入的文件是由用于.NET Core/.NET标准项目的基于CPS的新项

我在visualstudio工作。在我看来,如果我更改了导入的.targets文件中的任何内容,则在构建主项目时,.targets的新版本不会重新导入到主项目中。如果我重新打开我的项目(即关闭并再次打开Visual Studio),然后启动build,-.targets的新版本可以工作

是否可以告诉Visual Studio在任何重建时导入.targets


我尝试使用“重建”和“清理”解决方案和项目,但没有任何结果。

重新评估导入的文件是由用于.NET Core/.NET标准项目的基于CPS的新项目系统完成的

对于VS 2019之前的VS版本,您可能还需要向MSBuild指示导入的目标文件还应通过将其路径添加到
$(MSBuildAllProjects)
(在MSBuild 16/VS 2019中不再需要此路径):


美元(所有项目)$(MSBuildThisFileFullPath)
但是对于“classic”.NET Framework/ASP.NET项目,您仍然需要关闭并重新打开解决方案,以使更改在IDE内生效


另请参见。

重新评估导入的文件是由用于.NET Core/.NET标准项目的基于CPS的新项目系统完成的

对于VS 2019之前的VS版本,您可能还需要向MSBuild指示导入的目标文件还应通过将其路径添加到
$(MSBuildAllProjects)
(在MSBuild 16/VS 2019中不再需要此路径):


美元(所有项目)$(MSBuildThisFileFullPath)
但是对于“classic”.NET Framework/ASP.NET项目,您仍然需要关闭并重新打开解决方案,以使更改在IDE内生效


另请参见。

如果重建无法工作,那么清洁解决方案如何,然后卸载并重新加载项目文件。Lance Li MSFT,不,这也不会产生任何效果,但感谢您的建议,我没有尝试此操作。如果重建无法工作,那么清洁解决方案如何,然后卸载并重新加载项目文件。Lance Li MSFT,不,这也没有提供任何效果,但感谢您的建议,我没有尝试过。Martin Ullrich,请告诉我,我应该将此构造放置在哪里:$(MSBuildAllProjects)$(MSBuildThisFileFullPath)?我将其添加到imported.target和importing project中,但没有看到VS行为中关于该问题的更改。它应该进入导入的目标文件,但它只在构建的某些部分(例如发布)中有助于增量编译,但可能在“设计时”不起作用遗留项目系统的构建。Martin Ullrich,请告诉我,我应该将此构建放置在哪里:$(MSBuildAllProjects)$(MSBuildThisFileFullPath)?我将其添加到imported.target和importing project中,但没有看到VS行为中与此问题相关的更改。它应该进入导入的目标文件,但它只在构建的某些部分(例如发布)中有助于增量编译,但可能不会对遗留项目系统的“设计时”构建生效。
<PropertyGroup>
  <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>