现在一切都基于nuget包,你如何进行离线开发?
运行“dotnet new”然后“dotnet restore”有时会使用缓存包,有时会失败,因为它无法联系nuget服务器。
答案 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
在离线计算机上:
项目已经恢复正常,Visual Studio Code中的构建和调试也正常工作。
答案 2 :(得分:0)
我最近有这种情况:
我从开发机器上获取了$HOME\.nuget\packages
目录,并将其发送到整个过程以将二进制文件放入环境中,并将其提取到安全环境中的同一位置。
然后我执行了以下命令:
dotnet restore --source C:\Users\<my-user>\.nuget\packages\
所有软件包已还原。这样,我便能够正常进行构建,开发和迭代。