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

如何在VS2017中强制.NET Framework 4.7.1使用NuGet包中的.NET Standard库

解决.NET Framework项目强制使用NuGet包的.NET Standard版本问题

这个问题的根源在于NuGet的默认包解析逻辑:对于.NET Framework项目,它会优先选择专门针对.NET Framework编译的包版本(比如这里的net45),哪怕你的项目(.NET Framework 4.7.1)完全支持.NET Standard库。下面给你几个无需手动重新打包的可行方案:

方案1:通过项目文件配置Asset Target Fallback(推荐)

这个方法会告诉NuGet,当找不到适配当前项目框架的包时,优先尝试指定的.NET Standard框架版本,而不是默认的旧.NET Framework版本。

操作步骤:

  1. 在VS2017中右键点击项目B,选择编辑.csproj(如果是Web项目,可能需要先卸载项目再编辑)。
  2. 在<PropertyGroup>节点中添加以下配置:
    <AssetTargetFallback>netstandard1.3;$(AssetTargetFallback)</AssetTargetFallback>
    
  3. 保存文件,右键项目选择还原NuGet包。

这样NuGet就会优先选择RavenDB.Client的netstandard1.3版本,而不是net45版本,解决类型不兼容的问题。

方案2:直接在项目文件中强制指定包的目标框架

如果方案1不生效,你可以直接在项目的PackageReference中明确指定要使用的目标框架版本:

  1. 同样编辑项目B的.csproj文件,找到(或添加)RavenDB.Client的PackageReference节点,修改为:
    <PackageReference Include="RavenDB.Client" Version="3.5.4">
      <TargetFrameworks>netstandard1.3</TargetFrameworks>
    </PackageReference>
    
  2. 保存后还原NuGet包即可。

注意:如果你的项目B目前使用的是packages.config管理NuGet包,建议先迁移到PackageReference(右键项目→管理NuGet包→设置→默认包管理格式选择PackageReference),因为packages.config的框架定向能力有限。

方案3:调整NuGet的包解析优先级

你也可以在解决方案的NuGet.config文件中添加包优先级配置,确保.NET Standard版本被优先选择:

  1. 在解决方案根目录找到NuGet.config(如果没有就新建一个)。
  2. 添加以下配置:
    <configuration>
      <config>
        <add key="dependencyVersion" value="Highest" />
      </config>
      <packageSources>
        <!-- 保持原有的包源配置 -->
      </packageSources>
      <frameworks>
        <framework name="net471">
          <dependencies>
            <dependency id="RavenDB.Client" version="3.5.4" target="netstandard1.3" />
          </dependencies>
        </framework>
      </frameworks>
    </configuration>
    
  3. 保存后还原所有NuGet包。

这个方法会针对net471框架明确指定RavenDB.Client的目标框架版本,强制NuGet选择netstandard1.3的包。

所有方案的核心都是修改NuGet的包解析逻辑,让它优先选择.NET Standard版本的包,利用.NET Framework 4.7.1对.NET Standard的良好兼容性来解决类型不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:40:02