《.NET Core CLI工具文档dotnet-install脚本参考》
在.NET Core开发生态中,`dotnet-install`脚本是一个重要的工具,它允许开发者以灵活的方式安装.NET Core SDK和运行时环境。无论是本地开发、持续集成环境还是自动化部署流程,该脚本都能提供高效且可定制的安装方案。本文将深入探讨`dotnet-install`脚本的用法、参数配置、常见场景及最佳实践。
1. 脚本概述
`dotnet-install`脚本是一个跨平台的命令行工具,支持在Windows、macOS和Linux系统上安装.NET Core SDK或运行时。它通过直接下载官方发布的二进制包并解压到指定目录,避免了依赖系统包管理器的复杂性。脚本默认从微软官方CDN获取最新版本,但也可以通过参数指定特定版本或自定义源。
2. 脚本获取与运行
脚本可通过以下方式获取:
- Windows PowerShell:使用`Invoke-WebRequest`下载
- macOS/Linux Bash:使用`curl`或`wget`下载
示例命令(Windows PowerShell):
Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile "dotnet-install.ps1"
.\dotnet-install.ps1 -Channel Current -Version 7.0.100
示例命令(macOS/Linux Bash):
curl -sSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel LTS --version 6.0.202
3. 核心参数详解
`dotnet-install`脚本支持丰富的参数,以下是最常用的选项:
3.1 版本控制参数
- `--version`:指定精确版本号(如`7.0.100`)。若未指定,则安装指定通道的最新版本。
-
`--channel`:指定发布通道,可选值包括:
- `Current`:最新稳定版(默认)
- `LTS`:长期支持版
- `Preview`:预览版
- `3.1`、`6.0`等:特定主版本号
- `--quality`:指定质量级别(如`ga`表示正式版,`preview`表示预览版)。
3.2 安装路径参数
-
`--install-dir`:指定安装目录(如`/usr/local/share/dotnet`)。默认路径取决于操作系统:
- Windows:`%USERPROFILE%\.dotnet`
- macOS/Linux:`$HOME/.dotnet`
- `--shared-runtime`:仅安装运行时而非完整SDK(适用于生产环境部署)。
3.3 架构与架构参数
- `--architecture`:指定CPU架构,可选`x64`、`arm64`或`arm`。
- `--runtime`:安装特定运行时(如`dotnet-runtime-7.0`或`aspnetcore-runtime-7.0`)。
3.4 高级参数
- `--dry-run`:模拟安装过程,不实际下载或解压文件。
- `--verbose`:显示详细日志,便于调试。
- `--no-path`:不将安装目录添加到`PATH`环境变量。
- `--azure-feed`:指定自定义Azure Feed URL(适用于企业内部分发)。
4. 典型使用场景
4.1 本地开发环境安装
开发者可能需要在多台机器上保持一致的.NET Core版本。通过脚本可以快速安装指定版本:
# 安装.NET 7.0 SDK到默认路径
./dotnet-install.sh --channel 7.0 --version 7.0.100
# 验证安装
dotnet --list-sdks
4.2 CI/CD流水线集成
在持续集成环境中,脚本可确保构建环境使用正确的.NET Core版本。例如GitHub Actions中的用法:
- name: Install .NET Core
run: |
curl -sSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel LTS --version 6.0.202
echo "$HOME/.dotnet" >> $GITHUB_PATH
4.3 多版本共存管理
通过指定不同的`--install-dir`,可以在同一台机器上安装多个.NET Core版本:
# 安装.NET 6.0到自定义路径
./dotnet-install.sh --channel 6.0 --install-dir ~/dotnet6
# 安装.NET 7.0到默认路径
./dotnet-install.sh --channel 7.0
4.4 离线安装
在无网络连接的环境中,可先在有网络的机器上下载二进制包,再手动复制到目标机器:
- 使用`--dry-run`获取下载URL:
- 从日志中提取下载链接,手动下载`dotnet-sdk-7.0.100-linux-x64.tar.gz`。
- 在目标机器上解压到指定目录:
./dotnet-install.sh --channel 7.0 --dry-run --verbose
mkdir -p ~/dotnet7
tar -xzf dotnet-sdk-7.0.100-linux-x64.tar.gz -C ~/dotnet7
export PATH=$PATH:~/dotnet7
5. 常见问题与解决方案
5.1 权限问题
问题:在Linux/macOS上执行脚本时提示“Permission denied”。
解决:为脚本添加可执行权限:
chmod +x dotnet-install.sh
5.2 代理配置
问题:企业内网环境无法直接访问微软CDN。
解决:
- 设置HTTP代理环境变量:
- 或使用`--azure-feed`参数指向内部镜像源。
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
5.3 版本冲突
问题:安装新版本后,旧项目无法运行。
解决:
- 使用`global.json`锁定项目版本:
- 或通过`--install-dir`隔离不同版本。
{
"sdk": {
"version": "6.0.202",
"rollForward": "disable"
}
}
5.4 路径未生效
问题:安装后`dotnet`命令不可用。
解决:
- 检查是否使用`--no-path`参数。
- 手动将安装目录添加到`PATH`:
# Linux/macOS
export PATH=$PATH:~/dotnet7
# Windows
setx PATH "%PATH%;C:\Users\YourName\.dotnet"
6. 最佳实践
- 版本锁定:在项目根目录添加`global.json`,避免全局版本升级导致构建失败。
- 自动化脚本:将`dotnet-install`命令集成到部署脚本中,确保环境一致性。
- 日志记录:在CI/CD中使用`--verbose`参数记录安装过程,便于排查问题。
- 清理旧版本:定期清理未使用的.NET Core版本,释放磁盘空间。
- 多架构支持:在ARM设备上明确指定`--architecture arm64`,避免下载错误架构的包。
7. 脚本原理与扩展
`dotnet-install`脚本的核心逻辑包括:
- 解析参数并验证输入。
- 根据通道和版本号构造下载URL。
- 下载压缩包并验证哈希值。
- 解压到目标目录。
- 可选地将目录添加到`PATH`。
开发者可通过修改脚本源码(如PowerShell或Bash版本)实现自定义逻辑,例如:
- 添加企业内网认证。
- 集成到现有的基础设施即代码(IaC)工具中。
- 生成安装报告。
关键词:.NET Core、dotnet-install脚本、CLI工具、版本管理、持续集成、离线安装、多版本共存、参数配置、企业内网、全球.json
简介:本文详细介绍了.NET Core的`dotnet-install`脚本的用法,包括参数配置、典型场景、问题解决和最佳实践,帮助开发者高效管理.NET Core环境。