是否存在可靠MSBuild属性可检测NuGet还原构建(兼容.NET框架与Core)?
跨.NET Framework与.NET Core的NuGet还原专属MSBuild属性
- 存在通用且可靠的MSBuild属性:
$(RestoreTargets),执行NuGet还原操作时该属性会被设置(值通常为_Restore_NuGet),同时兼容.NET Framework和.NET Core项目。 - 你可以基于这个属性编写目标的条件判断,示例代码如下:
<Target Condition="'$(RestoreTargets)' != ''" Name="MyRestoreExclusiveTarget"> <!-- 此处编写仅在NuGet还原阶段执行的逻辑 --> </Target>
- 额外补充:还有
$(IsRestoreTarget)属性可用,但$(RestoreTargets)的兼容性更稳定,能覆盖所有主流还原场景(包括dotnet restore、Visual Studio内置还原、msbuild /t:Restore等操作)。 - 旧版MSBuild工具链(对应.NET Framework项目)中,
$(RestoreTargets)同样会在还原过程中被设置,无需担心版本兼容问题。
内容的提问来源于stack exchange,提问作者nvirth
相关产品推荐
相关产品推荐

