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

如何修改Visual Studio的NuGet路径?能否不通过PM执行add-migration命令?

不用Package Manager执行add-migration的可行方案

问题场景

执行PM> add-migration testing命令时触发权限错误。

问题详情

公司安全策略限制了C:\Users\name\...路径下的文件运行权限,导致EF Core工具的init.ps1脚本被拦截。已经把项目代码移到拥有管理员权限、可自由运行文件的C:\adminrun\repos目录,项目能正常启动,但EF工具的init.ps1仍存放在被封禁的C:\Users\name\.nuget\packages路径里。

核心疑问

能不能绕过Package Manager,直接执行add-migration命令?

错误信息

& : 文件 C:\Users\name.nuget\packages\microsoft.entityframeworkcore.tools\6.0.13\tools\init.ps1 无法加载,因为其操作被软件限制策略(例如通过组策略创建的策略)阻止。
在第1行第45字符:

  • ... rgs+=$_}; & 'C:\Users\name.nuget\packages\microsoft.entityfram ...

CategoryInfo: SecurityError: (:) [], PSSecurityException
FullyQualifiedErrorId : UnauthorizedAccess

当前NuGet配置文件(C:\Users\name\AppData\Roaming\NuGet\NuGet.Config)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages" />
  ...
</configuration>

可行解决办法

1. 直接用.NET CLI命令

打开CMD或PowerShell,切换到你的项目根目录(C:\adminrun\repos\你的项目文件夹),执行:

dotnet ef migrations add testing
  • 如果还没装EF Core CLI工具,全局安装命令:dotnet tool install --global dotnet-ef
  • 要是全局路径也受限制,就安装到项目本地:dotnet tool install dotnet-ef --tool-path .,之后用.\\dotnet-ef migrations add testing执行命令

2. 修改NuGet包存储路径

把NuGet包的存储目录改成允许运行文件的路径,比如C:\adminrun\nuget-packages:

  1. 打开C:\Users\name\AppData\Roaming\NuGet\NuGet.Config
  2. 在<configuration>节点里添加:
<config>
  <add key="globalPackagesFolder" value="C:\adminrun\nuget-packages" />
</config>
  1. 保存后,清理项目的NuGet包缓存,重新还原包。之后EF工具的脚本会存到新路径,再用Package Manager执行命令就不会被拦截了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:41:04