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

VS2017构建.NET Core 1.1.8项目时目标文件路径错误问题

嘿,这个问题我之前帮同事踩过坑,本质是MSBuild在解析Web项目目标文件时的路径冲突,我把原因和靠谱的解决办法整理给你:

为什么会出现这个问题?

主要有这几个常见原因:

  • 项目文件硬编码了旧版本路径:你的.csproj里可能直接写死了引用v10.0版本的Microsoft.WebApplication.targets,而不是用VS的动态变量来匹配当前安装的版本。
  • 环境变量配置错误:MSBuildExtensionsPath32这个关键环境变量指向了错误的路径,导致dotnet build时优先去旧路径找目标文件。
  • SDK版本兼容性问题:.NET Core 1.1.8是比较老旧的版本,和VS2017的MSBuild集成时,没有正确识别当前VS的安装目录, fallback到了过时的默认路径。

怎么解决?

试试下面这几个方法,按顺序来大概率能搞定:

  • 修正项目文件的Targets引用:
    打开你的.csproj文件,找到类似这样的行:
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
    
    把v10.0改成v15.0,或者更灵活的是用$(VisualStudioVersion)变量,改成:
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />
    
    这样MSBuild会自动匹配当前VS的版本路径。
  • 调整MSBuild环境变量:
    右键“此电脑”→属性→高级系统设置→环境变量,找到MSBuildExtensionsPath32变量,把它的值改成VS2017的MSBuild路径:
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild
    
    改完后重启命令行或IDE,再重新构建试试。
  • 直接指定VS2017的MSBuild进行构建:
    如果不想改环境变量,可以跳过dotnet build,直接用VS2017自带的MSBuild命令:
    "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" YourProjectName.csproj
    
    这样会强制使用正确的MSBuild版本来处理项目。
  • 升级.NET Core SDK(可选):
    .NET Core 1.1.8已经停止维护了,升级到和VS2017兼容的LTS版本(比如2.1.x或更高),不仅能解决这个路径问题,还能获得更好的稳定性和安全性。

内容的提问来源于stack exchange,提问作者Shubh Rocks Goel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:08:20