You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PolyglotNotebooksStudy/Docs/多语言笔记.1.4.1.管理 NuGet包.ipynb

325 lines
7.4 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{
"cells": [
{
"cell_type": "markdown",
"id": "065bfcac",
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"source": [
"管理NuGet包\n",
"==========="
]
},
{
"cell_type": "markdown",
"id": "0baca368",
"metadata": {},
"source": [
"## 浏览和查找NuGet包"
]
},
{
"cell_type": "markdown",
"id": "18559f3e",
"metadata": {},
"source": [
"VS Code 提供了查看和查找NuGet包的UI界面打开一个`Polyglot Notebook`文件,打开一个\"终端\", 切换到 \"nuget\"项打开一个UI管理窗口。如下图\n",
"\n",
"![UI窗口](./assets/images/NugetUI.jpg)"
]
},
{
"cell_type": "markdown",
"id": "c110c37f",
"metadata": {},
"source": [
"## 导入 NuGet 包"
]
},
{
"cell_type": "markdown",
"id": "7eecdf67",
"metadata": {},
"source": [
"在`.NET Interactive`中C#和F#核允许你使用`#r nuget`魔法命令将NuGet包导入到你的交互式会话中。两种语言的语法相同。"
]
},
{
"cell_type": "markdown",
"id": "73546727",
"metadata": {},
"source": [
"+ 导入最新版本的包,使用` #r nuget` 而无需指定版本号:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "ede3455f",
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>Newtonsoft.Json, 13.0.3</span></li></ul></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#r \"nuget:Newtonsoft.Json\""
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{\"Name\":\"张三\",\"Age\":20},{\"Name\":\"李四\",\"Age\":69},{\"Name\":\"王五\",\"Age\":82}]\r\n"
]
}
],
"source": [
"//使用包:序列化一个匿名类集合\n",
"\n",
"//引入命名空间\n",
"using Newtonsoft.Json;\n",
"\n",
"{ //花括号分隔作用域\n",
" var persons = new[]\n",
" {\n",
" new {Name=\"张三\", Age = 20},\n",
" new {Name=\"李四\", Age = 69},\n",
" new {Name=\"王五\", Age = 82},\n",
" }; \n",
"\n",
" var jsonText = Newtonsoft.Json.JsonConvert.SerializeObject(persons);\n",
" Console.WriteLine(jsonText);\n",
"}\n"
]
},
{
"cell_type": "markdown",
"id": "da4b55e2",
"metadata": {},
"source": [
"+ 导入指定版本的包"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>Newtonsoft.Json, 13.0.3</span></li></ul></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#r \"nuget:Newtonsoft.Json,13.0.3\""
]
},
{
"cell_type": "markdown",
"id": "07da3486",
"metadata": {},
"source": [
"+ 导入预览版本的包"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><div><strong>Restore sources</strong><ul><li><span>https://api.nuget.org/v3/index.json</span></li></ul></div><div></div><div><strong>Installed Packages</strong><ul><li><span>System.CommandLine, 2.0.0-beta4.22272.1</span></li></ul></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#r \"nuget:System.CommandLine,*-*\""
]
},
{
"cell_type": "markdown",
"id": "fe5a81be",
"metadata": {},
"source": [
"## 设置包源"
]
},
{
"cell_type": "markdown",
"id": "c8ce789d",
"metadata": {},
"source": [
"如果包不是Nuget官方托管包或者想明确包的来源使用`#i`命令指定一个nuget包源"
]
},
{
"cell_type": "markdown",
"id": "b2e11743",
"metadata": {},
"source": [
"+ 默认包源\n",
" 可以不用设置,默认使用的官方托管包"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><div><strong>Restore sources</strong><ul><li><span>https://api.nuget.org/v3/index.json</span></li></ul></div><div></div><div></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"//默认包源:可以不设置\n",
"#i \"nuget:https://api.nuget.org/v3/index.json\""
]
},
{
"cell_type": "markdown",
"id": "39096d0b",
"metadata": {},
"source": [
"+ 远程包源\n",
"\n",
" 组织通常会将包存储在私人或预发布源中"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><div><strong>Restore sources</strong><ul><li><span>https://api.nuget.org/v3/index.json</span></li><li><span>https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json</span></li></ul></div><div></div><div></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"//添加dotnet项目的预发布nuget源\n",
"#i \"nuget:https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json\""
]
},
{
"cell_type": "markdown",
"id": "134c7d97",
"metadata": {},
"source": [
"+ 本地包源\n",
"\n",
" 可以将一个本地文件夹作为nuget源"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [],
"source": [
"//\"C:\\Users\\用户账号\\.nuget\\packages\" 是 Windows 系统中 visual studio 默认的本机 nuget 包存储位置,可以当本地包源(注意路径用户账号换成自己的)\n",
"//当然可使用任意文件夹里面要有nuget包\n",
"\n",
"#i \"nuget:C:\\Users\\ruyu\\.nuget\\packages\"\n",
"#r \"nuget:MyOrg.MyPackage\""
]
},
{
"cell_type": "markdown",
"id": "54d60e85",
"metadata": {},
"source": [
"+ 需要认证的包源\n",
"\n",
" 一些企业搭建有自己的nuget私有包服务器(MyGet等),使用时需要认证。\n",
"\n",
" 但是:.NET Interactive 不直接支持访问需要身份验证的包源,但你可以通过在用户级别的 nuget.config 文件中放入包源的 PAT 来访问经过身份验证的源。你可以在这里了解更多关于这种方法的信息"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".NET (C#)",
"language": "C#",
"name": ".net-csharp"
},
"polyglot_notebook": {
"kernelInfo": {
"defaultKernelName": "csharp",
"items": [
{
"aliases": [],
"languageName": "csharp",
"name": "csharp"
}
]
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}