pcpm convert
Migra una solución existente a un workspace de PCPM.
pcpm convert [options]
pcpm convert es un comando de migración one-shot. Toma una
solución .NET existente (con o sin Central Package Management) y
la convierte en un workspace de PCPM.
Qué hace
- Recorre el workspace, recogiendo cada
<PackageReference />. - Adopta tu
Directory.Packages.propsexistente si lo tienes; si no, crea uno. - Elimina
Version="…"de cada<PackageReference />y escribe la versión como<PackageVersion />en CPM. - Escribe
pcpm.json. - Con
--workspace, escribepcpm-workspace.yamlcubriendo todos los proyectos. - Ejecuta
pcpm installpara materializar el store y escribirpcpm.lock.
Opciones
| Flag | Efecto |
|---|---|
--workspace | Escribe también pcpm-workspace.yaml. |
--no-install | Salta el pcpm install implícito. |
--no-cpm | No crea ni toca Directory.Packages.props. |
--force | Re-ejecuta aunque pcpm.json ya exista. |
--backup | Hace snapshot de cada fichero modificado a pcpm-convert.bak/ antes de editar. |
Ejemplos
# Migración estándar
pcpm convert
# Migración de monorepo
pcpm convert --workspace
# Migración que no cambia el lockfile
pcpm convert --no-install
Qué no cambia
pcpm convert es conservador. No hace lo siguiente:
- Toca nada más allá de los ficheros descritos arriba.
- Actualiza versiones de paquetes. Normaliza lo que tienes.
- Cambia la configuración de tus feeds NuGet.
- Modifica el grafo de build ni las propiedades.
Rollback
pcpm convert es amigable con git. El conjunto completo de cambios
es visible en git status:
git status
# On branch main
# Changes to be committed:
# new file: pcpm.json
# modified: Directory.Packages.props
# modified: src/Api/Api.csproj
# ...
Para revertir:
git restore .
Si usaste --backup, los originales están en pcpm-convert.bak/
y se pueden restaurar a mano.
Véase también
- Migrar desde CPM — guía completa.
pcpm init— para proyectos greenfield.