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

在Rider中添加NuGet包时出现MSB4019错误的解决咨询

问题描述
  • 环境:未使用npm,已安装Visual Studio 2022,使用Rider开发
  • 项目结构:解决方案包含三个项目:原生C项目A、依赖A的C/CLI项目B(路径D:\MyGitRepositories\MyRepository\B,包含B.vcxproj)、依赖B的C#项目C

执行dotnet add package Newtonsoft.Json命令添加NuGet包时,触发错误:

error MSB4019: The imported project "D:\Microsoft.Cpp.Default.props" was not found. Confirm that the expression in the Import declaration "\Microsoft.Cpp.Default.props" is correct, and that the file exists on disk.

推测原因

VCTargetsPath环境变量为空,该变量本应由IDE启动时自动填充(需匹配正确的MSBuild版本),但实际未配置;同时PATH环境变量中未包含MSBuild路径(本地已安装4个不同版本的MSBuild)。

已尝试的无效操作

  1. 此前在其他项目中通过调整Visual Studio工具安装解决过该问题(当时Microsoft.Cpp.Default.props自动出现在项目文件夹),但此次无法复现该操作
  2. 使用nuget install Newtonsoft.Json命令会在项目A中生成依赖文件夹,需提交到仓库,不符合预期,不是正确的包管理方式
  3. 确认Microsoft.Cpp.Default.props存在于BuildTools和Visual Studio的MSBuild安装目录(ProgramFiles和ProgramFiles(x86)下,共4个官方安装版本)

复现步骤

  • 使用VS或Rider创建C#控制台项目
  • 向解决方案添加C++/CLI控制台项目
  • 将C++/CLI项目设置为C#项目的依赖项
  • 在C#项目根目录的终端执行dotnet add package <anypackage>命令

解决方案

方法1:使用Visual Studio开发人员命令提示符执行命令

打开Visual Studio 2022 开发人员命令提示符(从Windows开始菜单搜索即可找到),通过cd命令切换到C#项目C的根目录,再执行dotnet add package Newtonsoft.Json。

开发人员命令提示符会自动配置所有Visual Studio/MSBuild相关的环境变量(包括VCTargetsPath),无需手动设置,能直接解决路径缺失问题。

方法2:手动配置VCTargetsPath环境变量

  1. 找到Visual Studio 2022对应的VC目标文件路径,默认路径示例:
    • 社区版64位:C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170
    • 专业版/企业版可将路径中的Community替换为Professional或Enterprise,若安装在其他盘符则对应修改前缀
  2. 打开系统环境变量设置:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  3. 在「系统变量」区域点击「新建」,变量名填VCTargetsPath,变量值填第一步找到的路径
  4. 重启终端或Rider,再执行dotnet add package命令

方法3:在Rider中指定正确的MSBuild版本

  1. 打开Rider的设置:File > Settings(Windows/Linux)或Rider > Settings(Mac)
  2. 导航到Build, Execution, Deployment > Toolset and Build
  3. 在MSBuild version下拉菜单中,选择Visual Studio 2022对应的MSBuild路径(通常位于C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe)
  4. 点击「Apply」保存设置,重启Rider后尝试添加NuGet包

方法4:临时修改C++/CLI项目的vcxproj文件(不推荐长期使用)

打开B项目的B.vcxproj文件,找到导入Microsoft.Cpp.Default.props的行,将相对路径改为绝对路径,示例:

<Import Project="C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.Cpp.Default.props" />

注意:此方法会绑定特定的VS安装路径,团队协作或更换环境时容易出问题,仅作为临时应急方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:05:08