# Hanamori
**Repository Path**: licyk/Hanamori
## Basic Information
- **Project Name**: Hanamori
- **Description**: Hanamori manages independent MSVC, Windows SDK and MSBuild installations on Windows x64. Install toolchains without a full Visual Studio installation, pin projects to specific versions, switch the current shell environment, or run a command with a selected toolchain.
- **Primary Language**: Rust
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-10-31
- **Last Updated**: 2026-11-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Hanamori 在 Windows x64 / ARM64 上管理独立的 MSVC、Windows SDK 和 MSBuild 安装。无需安装完整的 Visual Studio,即可安装工具链、为项目固定版本、切换当前 Shell 环境,或使用指定工具链运行命令。
支持别名与默认工具链、共享下载缓存、Shell 初始化、按目录发现配置、重新安装、自我更新和按范围卸载。支持 PowerShell、Bash 和 Zsh 集成;CMD 集成仍处于实验阶段。
- **官网:**
- **文档:** (中文与英文)
## 快速开始
在 Windows PowerShell 5.1 或 PowerShell 7 中安装 Hanamori:
```powershell
irm https://hanamori.netlify.app/install.ps1 | iex
```
脚本将 Windows x64 / ARM64 程序安装到 `%LOCALAPPDATA%\Hanamori\bin`,将该目录加入用户 PATH,并为当前 PowerShell 的 Profile 和会话初始化 Hook 与补全。无需管理员权限,工具链需要另行安装。
两个安装脚本均支持通过 `HANAMORI_INSTALL_DIR` 指定程序安装目录。显式传入的 `-InstallDir` / `--install-dir` 参数优先;环境变量未设置或为空时使用默认目录。`HANAMORI_HOME` 单独控制管理器数据目录。
在 MSYS2 或 Git Bash 中,使用 Bash 安装脚本:
```bash
curl -fsSL https://hanamori.netlify.app/install.sh | bash
```
脚本使用相同的程序目录和用户 PATH,并配置 Bash 启动文件与补全。安装后打开新的 Bash 终端,或执行脚本输出的 Hook 加载命令。需要 `cygpath`、`curl` 和 Windows PowerShell 或 PowerShell 7。随后按需安装工具链:
```powershell
hanamori install latest --name stable
hanamori default stable
hanamori exec '--' cl.exe /nologo /EHsc /MT hello.cpp
.\hello.exe
```
[首次编译指南](https://hanamori.netlify.app/docs/quick-start) 包含完整的 `hello.cpp` 示例和 Shell 激活方法。
使用 `--arch x64/arm64` 安装交叉编译工具,或 `--arch arm64/arm64` 安装原生 ARM64 工具;省略时跟随 Windows 原生架构。
默认使用 VS 2026 stable,安装 MSVC、Windows SDK 和 MSBuild。MSBuild 支持 VS 2026 v145 和 VS 2022 v143(指定 `--vs-version 2022`)原生 C++ 项目与解决方案:
```powershell
hanamori install latest --name build
hanamori exec --using build '--' MSBuild.exe app.sln -p:Configuration=Release -p:Platform=x64
```
`--no-msbuild` 仅安装 MSVC 和 SDK;`--no-sdk` 默认仅安装编译器。显式传入的 `--msbuild` / `--no-msbuild` 会覆盖项目的 MSBuild 设置。
当前初步支持 C++ 构建目标与文件跟踪,依赖 Windows SDK 和主机的 .NET Framework,并设有单独的[原生验收测试](https://hanamori.netlify.app/docs/testing)。Windows 原生构建验收仍待完成;Linux 解包测试不能替代该验收。支持范围见[工具链安装文档](https://hanamori.netlify.app/docs/installation)。
## 卸载
按名称卸载受管工具链:
```powershell
hanamori uninstall stable
```
卸载 Hanamori 本体前,如果当前 Shell 已激活工具链,先执行 `hanamori deactivate`,并关闭其他 Hanamori 会话。先预览清理范围,再执行卸载:
```powershell
hanamori self uninstall --dry-run
hanamori self uninstall
```
这会删除程序、升级备份、已记录且仍能确认归属的 Shell 启动入口,以及安装脚本添加的用户 PATH 条目。工具链、配置和命名引用会保留。
若还需要清理受管工具链、已完整下载的缓存、配置和引用:
```powershell
hanamori self uninstall --purge --dry-run
hanamori self uninstall --purge
```
受管工具链目录会整体删除。外部工具链文件、受管工具链目录之外的未知文件,以及手动添加的 PATH 条目会保留。在 Windows 上,辅助脚本会在主进程退出后完成程序删除。清理边界和失败重试方法见[卸载指南](https://hanamori.netlify.app/docs/self-uninstall)。
## 开发
```sh
cargo build --locked --release -p hanamori --bin hanamori
cargo test --workspace --locked
cargo xtask check
```
构建 Windows MSVC 程序需要 Rust 和对应的链接器、构建工具。修改或发布 CLI 前,请阅读[架构](https://hanamori.netlify.app/docs/architecture)、[测试](https://hanamori.netlify.app/docs/testing)和[发布流程](https://hanamori.netlify.app/docs/release)。
独立网站位于 `site/`:
```sh
cd site
bun install --frozen-lockfile
bun run dev
```
运行 `bun run build` 将静态文件输出到 `site/.output/public`,通过 `bun run check` 和 `bun run test` 进行验证。双语内容和部署配置见[网站维护文档](https://hanamori.netlify.app/docs/website)。网站托管需要单独配置,仅添加这些文件不会发布网站。
本项目采用 [GNU General Public License v3.0](LICENSE) 许可证。网站引用与署名见 [site/NOTICE](site/NOTICE)。