You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS 2022 C#项目升级.NET 5后$(TargetPath)宏不可用的替代方案咨询

解决方案:SDK风格csproj中$(TargetPath)的替代方案

在从.NET Framework的旧式csproj迁移到.NET 5+的SDK风格csproj后,部分旧MSBuild宏的赋值逻辑会发生变化,$(TargetPath)失效是典型的适配问题,可直接使用以下替代组合:

  • 首选完全等效替代:$(TargetDir)$(TargetFileName)
    两个宏在SDK风格项目中均稳定可用,拼接后与原$(TargetPath)的输出完全一致,即生成主文件的完整绝对路径。
  • 适配自定义配置的备选方案:$(OutputPath)$(AssemblyName)$(TargetExt)
    如果你修改过项目的默认程序集名、输出路径规则,该组合兼容性更强,各部分含义如下:
    • $(OutputPath):项目配置的输出目录相对/绝对路径
    • $(AssemblyName):项目的程序集名称
    • $(TargetExt):输出文件的扩展名(.dll/.exe等)

验证方法

你可以在后期生成事件中加入临时调试命令,确认路径是否符合预期:

echo 生成文件路径:$(TargetDir)$(TargetFileName)
pause

编译项目后即可直接打印出拼接后的完整路径,确认无误后再删除调试命令即可。

注意事项

如果替换后仍出现路径错误,可检查项目属性「生成」页的输出路径配置,确认SDK风格项目的输出路径规则与原有.NET Framework项目的配置对齐。

内容的提问来源于stack exchange,提问作者Michael T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:45:02