MySQL: Online
Load: Low
Sandbox: Ready

Cómo corregir errores "Missing Project Reference" al compilar un plugin de CounterStrikeSharp

Algunos plugins están divididos en dos repositorios: el plugin en sí, y un proyecto "API" o "shared" separado del que depende, normalmente enlazado como submódulo git. Si descargas el plugin como un simple .zip desde GitHub, el contenido de ese submódulo no se incluye, solo un puntero hacia él. El resultado es una compilación que falla con decenas de errores confusos CS0246/CS0103, "type or namespace not found", uno por cada clase que el proyecto faltante habría proporcionado. La causa real es una sola línea, fácil de pasar por alto.

1

Encuentra el error real

Desplázate hasta arriba del registro de compilación fallida, encima del muro de errores CS0246. Busca una línea como esta, es la causa real, todo lo que sigue es consecuencia de ella:

warning MSB9008: The referenced project ../ggmcAPI/ggmcAPI.csproj does not exist.
2

Entiende qué significa

El archivo .csproj del plugin hace referencia a otro proyecto mediante una ruta relativa, en el ejemplo anterior, una carpeta llamada ggmcAPI, ubicada un nivel por encima de la carpeta del propio plugin. Esa carpeta simplemente no está en tu archivo subido.

3

Comprueba si es un submódulo git

Abre la página del plugin en GitHub y busca una carpeta mostrada con un pequeño icono de flecha y un hash de commit corto, en lugar de un listado de archivos normal, eso es un submódulo. El botón "Download ZIP" de GitHub nunca incluye el contenido de los submódulos, solo un puntero a qué commit debería ser. Tendrás que abrir el repositorio de ese submódulo por separado y descargarlo por su cuenta.

4

La profundidad correcta de la carpeta

Este es el paso que la mayoría suele hacer mal en el primer intento. La ruta relativa en el .csproj (../ggmcAPI en nuestro ejemplo) se resuelve respecto a la carpeta que contiene el propio archivo .csproj, no respecto a la raíz de tu archivo .zip. Si la carpeta de tu plugin y la carpeta de la dependencia no son hermanas, un nivel arriba lleva al lugar equivocado.

TuPlugin.zip
TuPlugin-1.0.0
TuPlugin.csproj
TuPlugin.cs
ggmcAPI
ggmcAPI.csproj
5

Un error común que evitar

Poner la carpeta de la dependencia dentro de la propia carpeta del plugin parece razonable, pero no es lo que espera la ruta relativa. Esta estructura fallará exactamente igual que si no hubiera ninguna carpeta:

TuPlugin.zip
TuPlugin-1.0.0
TuPlugin.csproj
ggmcAPI (profundidad incorrecta)
6

Recompila

Una vez que ambas carpetas estén una al lado de la otra a la profundidad correcta, vuelve a comprimir el archivo y súbelo de nuevo. Si MSB9008 ya no aparece en el registro pero sigues viendo errores, ahora son errores de compilación reales que merece la pena investigar por separado.

Abrir el compilador CS2Sharp

¿Te ha resultado útil este tutorial?

0 usuarios encontraron útil este tutorial
Página generada en 0.012 segundos
CounterStrikeSharp Web Compiler V1.0 - Hecho con por RomaniaBarlap para la comunidad.