You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在Visual Studio中无需重复下载,为所有新项目安装包(如Entity Framework)?

嘿,这个问题我之前帮好几个开发者捋清楚过,每次新建项目都要等包下载确实挺磨人的,给你几个实用的解决方案,从根源上解决重复下载和重复安装的问题:

方案1:定制自己的Visual Studio项目模板(最推荐,一劳永逸)

这是我最常用的方法,相当于把你常用的“项目基础配置+必备包”做成一个专属模板,以后新建项目直接用它就行:

  • 先新建一个空白的基础项目(比如你日常用的ASP.NET Core Web App、Console App或者Class Library)
  • 打开NuGet包管理器,把所有你需要的包(比如Entity Framework Core、AutoMapper、Newtonsoft.Json这些)都装好,选一个你常用的稳定版本
  • 点击Visual Studio顶部菜单栏的项目 -> 导出模板
  • 在弹出的窗口里选择项目模板,给模板起个好记的名字(比如"My Base Web Project"),再写一句简单的描述(比如“预装有EF Core和常用工具包的Web项目模板”),然后点击导出
  • 下次新建项目时,在创建新项目页面就能找到你自己的专属模板了,用它新建的项目已经包含所有预安装的包,完全不用再下载!
方案2:利用NuGet全局缓存+统一版本配置

NuGet本身就有本地缓存机制,只要新项目用的包版本和你之前下载过的一致,就会直接调用缓存里的文件,不会重新下载:

  • NuGet的默认缓存路径:Windows是C:\Users\[你的用户名]\.nuget\packages,Mac/Linux是~/.nuget/packages,所有下载过的包都存在这里
  • 如果你想让所有新项目默认使用某个固定版本的包(比如EF Core 7.0.10),可以修改NuGet配置文件:
    找到用户目录下的NuGet.Config(一般在C:\Users\[你的用户名]\.nuget或者~/.nuget里),添加以下配置:
    <configuration>
      <config>
        <!-- 设置所有包的默认安装版本 -->
        <add key="defaultPackageVersion" value="7.0.10" />
      </config>
      <!-- 保留原来的包源配置 -->
      <packageSources>
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
      </packageSources>
    </configuration>
    
  • 这样以后在新项目里安装EF时,如果不指定版本,就会自动用你设置的默认版本,直接读取缓存里的包,不用再下载
方案3:用dotnet CLI创建自定义模板(适合喜欢命令行的开发者)

如果你习惯用dotnet命令行工具,这个方法也很高效:

  • 先创建一个基础项目,装好所有需要的包,调整好配置
  • 进入项目目录,运行命令:dotnet new template create
  • 按照终端提示输入模板名称、简短描述等信息,完成后模板会自动安装到本地的dotnet模板库
  • 以后新建项目时,直接运行dotnet new [你的模板名称]就能生成带好所有包的项目,全程不用等待下载

额外小技巧

  • 如果遇到缓存里的包损坏导致下载异常,可以用命令dotnet nuget locals all --clear清理缓存,之后重新下载一次包即可
  • 如果你是在解决方案里管理多个项目,可以在解决方案根目录创建Directory.Packages.props文件,统一配置所有项目的包版本,这样新加入解决方案的项目会自动继承版本配置,避免重复下载不同版本的包

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

火山引擎 最新活动