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

如何禁用MSBuild自动将<Reference>升级为<ProjectReference>的功能

禁用MSBuild自动替换DLL引用为项目引用的方法

要阻止MSBuild将项目A中的DLL引用自动转换为项目引用(ProjectReference),可以通过以下两种方式实现:

1. 针对单个DLL引用添加属性

直接编辑项目A的.csproj文件,在对应DLL的引用节点中添加<SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>属性,让MSBuild跳过查找同名项目并转换引用类型的逻辑。示例配置如下:

<Reference Include="ProjectB">
  <HintPath>..\CustomBuildOutput\ProjectB.dll</HintPath>
  <!-- 核心配置:禁用自动转换为项目引用 -->
  <SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
  <Private>true</Private>
</Reference>

注意:HintPath要指向自定义MSBuild生成的、包含额外类的ProjectB.dll路径,避免引用到项目默认输出的标准DLL版本。

2. 全局禁用项目引用自动转换

如果需要对项目A中所有DLL引用生效,可以在项目的PropertyGroup节点中添加全局配置:

<PropertyGroup>
  <DisableImplicitProjectReferences>true</DisableImplicitProjectReferences>
</PropertyGroup>

这种方式会禁用所有隐式的项目引用转换,适合需要批量处理的场景。

补充提示

修改配置后,记得重新加载项目,确保MSBuild读取到最新的引用设置。

内容的提问来源于stack exchange,提问作者Daniel Patrício

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:24:53