如何使用.net Core设置离线开发

时间:2016-05-20 05:54:09

标签: asp.net-core

现在一切都基于nuget包,你如何进行离线开发?

运行“dotnet new”然后“dotnet restore”有时会使用缓存包,有时会失败,因为它无法联系nuget服务器。

3 个答案:

答案 0 :(得分:9)

根据yishaigalatzer(根据他的Github个人资料为“Redmond”中的“Microsoft”工作):“这是设计的。请不要添加逻辑来解决它。” (作为本期报告讨论的一部分:https://github.com/NuGet/Home/issues/2623

所以......

以下是我们可以解决它的一些方法。所有这些都旨在阻止“dotnet”尝试连接到服务器,并仅使用本地包目录:

(1)添加NuGet.config文件作为项目的一部分(与project.json在同一目录中),从源中删除在线存储库。使用以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
    </packageSources>
</configuration>

(2)使用不包含任何来源的自定义NuGet配置(例如“MyCustomNuGet.config”):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
</configuration>

然后,当您运行“dotnet restore”时,明确指定使用您的自定义配置文件:

dotnet restore --configfile MyCustomNuGet.config

(3)运行“dotnet restore”时,显式指定本地包目录为源:

dotnet restore -s $HOME/.nuget

(或.nuget目录可能在哪里)

答案 1 :(得分:1)

要为.Net Core开发设置脱机Ubuntu环境,我使用了以下步骤: - 我在连接到Internet的PC上用Ubuntu启动了一个带USB的现场USB,我安装了所有必要的软件包(dotnet,VS Code,git,node等); - 从Visual Studio Code我已经安装了C#扩展(如有必要,还有其他的); - 我成功编译并运行了ASP.Net Core CLI示例(这下载了所有NuGet包nedded); - 我在USB记忆棒上复制了所有包缓存:      - / var / cache / apt      - /home/.../.vscode/extensions      - / home /.../。nuget / packages

* instead of ... should be the username

在离线计算机上:

  • 我已经使用dpkd -i * .deb
  • 安装了apt文件夹中的所有软件包
  • 我在/home/.../.vscode/extension中复制了Visual Studio扩展文件夹
    • 这里我在Visual Studio Code中遇到错误,我必须使用chmod -R 777 / home /.../。vscode / extensions
    • 给予扩展文件夹权限
  • 我已将nuget / packages中的所有* .nupkg文件复制到新文件夹中(例如/home/.../mypackages)
    • 只复制nuget / packages缓存文件夹中的* .nupkg文件,这是文件和文件夹的整个层次结构,我在该缓存文件夹中的资源管理器(Nautilus)“.nupkg”中搜索,然后复制了所有文件和文件夹。结果* .nupkg文件;
  • 现在我在不同的项目中使用了dotnet restore命令和Nuget包的路径: dotnet restore -s $ HOME / mypackages

项目已经恢复正常,Visual Studio Code中的构建和调试也正常工作。

  • 致力于恢复npm包缓存

答案 2 :(得分:0)

我最近有这种情况:

  • 我有一台可以连接互联网的开发机器
  • 仅在没有互联网连接的环境中出现问题

我从开发机器上获取了$HOME\.nuget\packages目录,并将其发送到整个过程以将二进制文件放入环境中,并将其提取到安全环境中的同一位置。

然后我执行了以下命令:

dotnet restore --source C:\Users\<my-user>\.nuget\packages\

所有软件包已还原。这样,我便能够正常进行构建,开发和迭代。