2014-09-30 23 views
6

Sto eseguendo un server Nuget privato localmente su IIS. Sto creando pacchetti e li carico tutti tramite commadline usando nuget.exe (in seguito devo metterlo su build server, da qui la riga di comando). Tuttavia c'è un problema su cui sono bloccato.Nuget Le dipendenze non vengono installate

Sto tentando di dichiarare le dipendenze. Genero il file nuspec nella cartella in cui si trova il file .csproj. Poi ho modificare manualmente il file nuspec per aggiungere questo sotto il tag di metadati:

<metadata> 
    <dependencies> 
     <group targetFramework=".NETFramework4.5"> 
      <dependency id="DemoProject" version="2.0.0.0" /> 
     </group> 
    </dependencies> 
</metadata> 

DemoProject, la versione 2.0.0.0 è presente sul Nuget Server. Il progetto per cui sto creando il pacchetto, MyProj.csproj non ha il riferimento al DemoProject aggiunto ad esso tramite Visual Studio. È solo al momento del confezionamento che voglio creare la dipendenza. Sembra strano ma è necessario per alcune convalide iniziali.

Poi ho eseguire il comando pacchetto:

"C: \ NuGet \ NuGet.exe" pacco MyProj.csproj -IncludeReferencedProjects prop configurazione = Rilasciare

Poi spingere al server di NuGet tramite riga di comando. Quando eseguo un'installazione tramite la riga di comando, solo il pacchetto MyProj è presente nel percorso di installazione.

Quando utilizzo Nuget Package Explorer e creo un pacchetto, è possibile utilizzare l'Editor delle dipendenze del pacchetto per specificare la dipendenza. Richiede l'URL del mio server Nuget locale e quindi aggiunge la dipendenza. E quando installo quel pacchetto, funziona !!

Sembra che non ci siano differenze nel file nuspec generato in entrambi i casi. Ovviamente il gestore di pacchetti Nuget sta facendo qualcosa che mi sta perdendo.

Eventuali suggerimenti?

Maggiori dettagli: Quando creo una cartella lib nella console Package Manager e attivare manualmente il dll, liberatore> net45-> MyProj.dll, poi quando si installa il pacchetto così creato anche "non" installare la dipendenza . Torna di nuovo alla documentazione di lettura.

risposta

0

So che questo non risponde direttamente alla domanda, ma ho riscontrato un problema con le dipendenze di NuGet e la mia soluzione potrebbe fornire un suggerimento.

La DLL n. 1 non ha avuto dipendenze da NuGet. Spinto quello al mio repo privato. DLL # 2 pacchetto NuGet referenziato DLL # 1. Spinto quello al mio repo privato.

Tutto il fine e tutto tranne che dal progetto Applicazione quando si passa a "Gestisci pacchetti NuGet ...", il pacchetto NuGet per DLL # 2 è elencato nella scheda Sfoglia ma non mostra dipendenze. Sono stato costretto ad installare sia i pacchetti nuget DLL # 1 AND DLL # 2. Ho desiderato installare il pacchetto nuget DLL # 2 e ottenere automaticamente la DLL # 1.

Il modo in cui l'ho risolto era la disinstallazione di tutti i pacchetti NuGet dalla soluzione DLL # 2. Quindi andare su Strumenti> Opzioni> NuGet Package Manager> Generale. Quindi imposta il formato di gestione dei pacchetti predefinito su Packages.config e deseleziona l'opzione "Consenti selezione del formato sulla prima installazione del pacchetto".

Quindi ho installato tutti i pacchetti NuGet necessari. Ora quando lo comprimo e lo spingo sul server, mostra le dipendenze corrette quando si va a "Gestisci pacchetti NuGet ...".

NuGet pacchetto non vede le dipendenze in quanto la sua ricerca di loro nella cartella \ pacchetti. Quella cartella non esisteva perché stavo usando PackageReference per la gestione dei pacchetti.

Tutto ha funzionato dopo il passaggio a Packages.config per la gestione dei pacchetti.

So che il problema riscontrato non era uguale al tuo ma se non si utilizza Packages.config per la gestione dei pacchetti, forse è relativo.

0

Risposta tardiva, ma il problema con questo nuspec è <group targetFramework=".NETFramework4.5">. Sono sicuro che ".NETFramework4.5" è un targetFramework non valido. Un elenco completo dei Target Frameworks is here disponibili.

Quando si lavora con Dependency section, potrebbe non essere necessario utilizzare il tag di gruppo. Qualsiasi utente che incontri errori simili farebbe bene a leggere quella sezione. Hanno campioni di uso corretto.

Problemi correlati