【问题标题】:.NET Core c# Project - where does all nuget packages are located?.NET Core c# 项目 - 所有 nuget 包都位于哪里?
【发布时间】:2021-02-24 16:00:08
【问题描述】:

我使用 Visual Studio 2017 创建了 ASP.net Core 项目。 我需要使用 Visual Studio 2017 在构建机器上编译/调试这个项目。但是我在构建机器上没有互联网。

我的开发机器上有完全相同的项目,我可以在完全访问互联网的情况下构建它。我在开发机器上可以完全访问互联网。

如何将所有参考 Nuget 包复制到 Build 机器,以便我可以在 Build 机器上编译/调试应用程序?

在 .net 框架项目中,我可以复制整个“包”文件夹,它会起作用。在 .NET core 中没有包文件夹。

我尝试将包从我的开发机器的 C:\Users.nuget 复制到构建机器(没有互联网)的 C:\Users.nuget,但没有成功。

谢谢, 阿图尔

【问题讨论】:

  • 当您说“它不起作用”时,错误是什么?
  • Nuget 包存储在C:\Users\<user>\.nuget\packages 中。您必须将它们复制到构建机器上的目录中,然后将其设置为 Visual Studio 中的本地包源

标签: .net asp.net-core .net-core nuget


【解决方案1】:

在解决方案所在的根目录中添加 Nuget.config 文件。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <packageSources>
     <clear />
     <add key="PackageSource" value="c:\packages" />
   </packageSources>
 </configuration>

你可以使用这个命令来构建你的项目

dotnet restore $PROJECT_NAME --configfile ./NuGet.config
dotnet build $PROJECT_NAME --no-restore

【讨论】:

  • 我试过了。但没有用。它总是抛出错误 -error NU1101: Unable to find package NuGet.Frameworks。源中不存在具有此 ID 的包:PackageSource
【解决方案2】:

感谢大家花时间回答。这给了我很多提示。 C:\Users\myusername\AppData\Roaming\NuGet\NuGet.Config 中的以下设置解决了我的问题。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
  <packageManagement>
    <add key="format" value="0" />
    <add key="disabled" value="False" />
  </packageManagement>
  <disabledPackageSources>
    <add key="Microsoft Visual Studio Offline Packages" value="true" />
    <add key="custom" value="true" />
  </disabledPackageSources>
  <packageSources>
    <add key="Package source" value="C:\Users\myusername\.nuget\packages" />
  </packageSources>
</configuration>

最初,它有以下条目,由于机器无法访问互联网而导致问题。

<?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="artifactory" value="https://<artifactory URL>/artifactory/api/nuget/v3/nuget-remote" />
  </packageSources>
</configuration>

所有的包都被手动复制到构建机器到 C:\Users\myusername.nuget\packages 文件夹中。

谢谢, 阿图尔

【讨论】:

  • 经过上述更改后,我可以看到 obj\project.assets.json 并带有以下参考 "packageFolders": { "C:\\Users\\myusername\\.nuget\\packages\\": {}, "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {} }
猜你喜欢
  • 2017-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-21
  • 1970-01-01
  • 2020-01-09
  • 2017-07-27
  • 2013-05-20
相关资源
最近更新 更多