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

将Web项目转为Microsoft.NET.Sdk.Web后,如何保留packages.config?

解决.NET SDK Web项目强制识别为PackageReference无法切换回packages.config的问题
  • 修正.csproj核心配置
    确保项目文件中包含以下关键配置,同时移除所有<PackageReference>节点,保留原有的<Reference>指向packages目录下的程序集:

    <Project Sdk="Microsoft.NET.Sdk.Web">
      <PropertyGroup>
        <TargetFramework>net48</TargetFramework> <!-- 替换为你的目标框架版本 -->
        <RestoreProjectStyle>Packages.config</RestoreProjectStyle>
        <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
        <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
      </PropertyGroup>
      <!-- 确保packages.config被项目识别 -->
      <None Include="packages.config" />
      <!-- 保留原有的程序集引用示例 -->
      <Reference Include="NewRelic.Agent.Api, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
        <HintPath>..\packages\NewRelic.Agent.Api.9.0.0\lib\net452\NewRelic.Agent.Api.dll</HintPath>
      </Reference>
      <!-- 其他引用省略 -->
    </Project>
    
  • 彻底清理缓存

    1. 删除项目目录下的obj、bin文件夹,以及解决方案根目录的.vs文件夹
    2. 执行NuGet缓存清理命令:dotnet nuget locals all --clear,或在Visual Studio中通过「工具 > NuGet包管理器 > 包管理器设置 > 清除所有NuGet缓存」完成
  • 重新安装NuGet包
    由于Update-Package -Reinstall对PackageReference项目无效,需手动重新安装packages.config中的所有包:

    1. 右键项目选择「卸载项目」,编辑.csproj保存后右键选择「重新加载项目」
    2. 打开NuGet包管理器切换到「浏览」标签,逐个搜索并安装packages.config中记录的包(指定对应版本)
    3. 安装完成后,确认packages.config文件内容与已安装包一致
  • 修复VS引用显示异常

    1. 右键项目 > 属性 > 应用程序,确认目标框架版本正确
    2. 关闭Visual Studio,再次删除.vs文件夹后重新打开解决方案
    3. 若仍未显示Packages节点,可在.csproj的<PropertyGroup>中添加:
      <NuGetPackageImportStamp>$(MSBuildProjectFullPath)</NuGetPackageImportStamp>
      
  • 验证功能有效性
    构建项目后,检查NewRelic等包是否正确注入静态内容(如页面中的监控脚本),确认站点运行时相关功能正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:55:18