È comune suddividere una soluzione di grandi dimensioni in più progetti per una questione di organizzazione della base di codice e ciò è stato fatto facilmente nelle versioni precedenti di .NET Framework da Visual Studio.Come specificare le dipendenze su altri progetti con CLI .NET?
Come si può fare lo stesso con .NET CLI? Supponiamo di avere il seguente scenario semplificato per esempio:
- Solution Folder
- global.json
- src
- LibProject
- ConsoleProject
Supponiamo ora che il ConsoleProject
dipende dalla LibProject
. Intuitivamente I belive che questo significa che nel ConsoleProject
il project.json
dovrà contenere una sezione dependencies
come questo:
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-*"
},
"LibProject": "1.0.0-*"
}
Ma se facciamo questo, quando cerchiamo di ripristinare le dipendenze per l'ConsoleProject
o quando si cerca di costruiscilo, non possiamo farlo Quando proviamo a ripristinare viene visualizzato il messaggio
Impossibile risolvere 'LibProject (> = 1.0.0)' per '.NETCoreApp, Version = v1.0'.
Capisco il motivo. Durante il ripristino, NuGet sta cercando di trovarlo come pacchetto sui feed specificati su NuGet.config
. Ma non dovrebbe farlo, dovrebbe usare quello nella cartella di pari livello.
Nelle precedenti versioni di .NET Core, aggiungerevamo il riferimento tramite VS e quindi, se provassimo a creare il ConsoleProject
, VS crea innanzitutto LibProject
e utilizza la DLL corrispondente.
Come viene fatto lo stesso tipo di cosa qui? Come facciamo a fare riferimento a un altro progetto nella stessa soluzione e come ripristiniamo/costruiamo/eseguiamo con la CLI .NET considerando questo tipo di dipendenza?
Hai avuto fortuna se si fa ' "LibProject": { "target": "progetto"} '? – khellang
Nelle versioni più recenti del cli dotnet che utilizza il formato 'csproj', è possibile eseguire' dotnet aggiungi riferimento ../ MyProject/MyProject.csproj' https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-add-reference – dbattaglia