2015-05-21 31 views
6

Sto cercando di creare un pacchetto cioccolatoso. Inizialmente ho creato una versione che non aveva alcuna dipendenza e ho semplicemente inserito un file exe nella directory tools/bin e poi creato un semplice file nuspec, e questo correttamente installava il file exe sul path, che è tutto ciò di cui ho bisogno per questo strumento interno.Come posso creare un pacchetto che dipende da un pacchetto che "prende di mira i progetti"?

Tuttavia, il progetto è stato ora ristrutturato in modo che dipenda da una dipendenza esterna. La dipendenza è un pacchetto nuget che si trova nello stesso repository del progetto principale. Per aggiungere la dipendenza, l'ho aggiunto alla sezione delle dipendenze. Anche il progetto stesso in Visual Studio dipende dallo stesso. Ecco il mio file nuspec: (ho rimosso alcuni dati, segnati da rm, ma non dovrebbe incidere su di essa Tutto il resto è la stessa.)

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Do not remove this test for UTF-8: if “Ω” doesnt appear as greek uppercase omega letter enclosed in quotation marks, you should use an editor that supports UTF-8, not this one. --> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata> 
     <!-- Read this before publishing packages to chocolatey.org: https://github.com/chocolatey/chocolatey/wiki/CreatePackages --> 
     <id>lisp-translator</id> 
     <title>lisp-translator (Install)</title> 
     <version>0.1.0</version> 
     <authors>rm</authors> 
     <owners>rm</owners> 
     <summary>rm</summary> 
     <description>rm</description> 
     <projectUrl>rm</projectUrl> 
     <tags>lisp-translator admin</tags> 
     <copyright /> 
     <licenseUrl>rm</licenseUrl> 
     <requireLicenseAcceptance>false</requireLicenseAcceptance> 
     <!--<iconUrl>http://cdn.rawgit.com/__REPLACE_YOUR_REPO__/master/icons/lisp-translator.png</iconUrl>--> 
     <dependencies> 
     <dependency id="LispParsingLibrary" version="1.1.0.17190" /> 
     </dependencies> 
     <releaseNotes /> 
    </metadata> 
</package> 

Tuttavia, quando provo ad installarlo, ho un piuttosto esoterica errore:

lisp-translator not installed. An error occurred during installation: 
External packages cannot depend on packages that target projects. 
The install of lisp-translator was NOT successful. 
lisp-translator not installed. An error occurred during installation: 
External packages cannot depend on packages that target projects. 

Chocolatey installed 0/1 package(s). 1 package(s) failed. 
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log). 
Failures: 
- lisp-translator 

Cosa sto sbagliando per quanto riguarda l'aggiunta di questa dipendenza?

risposta

1

Questo è un problema di packaging nuget molto vecchio e stupido. Il pacchetto LispParsingLibrary contiene una cartella denominata "contenuto". Il che significa che anche il tuo pacchetto avrebbe bisogno di una cartella di contenuti.

Non lo consigliamo affatto. Si prega di chiedere al manutentore di LispParsingLibrary di rimuovere quella cartella o crearla durante l'installazione e copiare i file in essa.

ho pensato che abbiamo avuto un problema presentato per monitorare questo, ma ho aggiunto https://github.com/chocolatey/choco/issues/290

+0

Una questione correlata è http://stackoverflow.com/questions/24710818/external-packages-cannot-depend-on-packages- that-target-projects-partial-failure – ferventcoder

+0

LispParsingLibrary non sembra avere una cartella di contenuto. Ad esempio, aprendolo in NuGet Package Explorer viene mostrata solo una cartella lib/net45 con la cartella dll e senza contenuto. – Jake

+0

@Jake dove si trova questo pacchetto LispParsingLibrary? Non lo vedo su Nuget o Chocolatey. – ferventcoder

Problemi correlati