2015-05-21 27 views
6

Próbuję stworzyć czekoladowy pakiet. Początkowo stworzyłem wersję, która nie miała żadnych zależności i po prostu umieściłem plik exe w katalogu tools/bin, a następnie zrobiłem prosty plik Nuspec, a to poprawnie zainstalowałoby plik exe na ścieżce, co jest wszystkim, czego potrzebuję do to narzędzie wewnętrzne.Jak utworzyć pakiet, który zależy od pakietu, który "kieruje projekty"?

Jednak projekt został zrestrukturyzowany, więc zależy od zależności zewnętrznej. Zależność jest pakietem nuget, który znajduje się w tym samym repozytorium co główny projekt. Aby dodać tę zależność, dodałem ją do sekcji zależności. Sam projekt w Visual Studio zależy również od tego samego. Oto moja nuspec file: (I usunięte niektóre dane, oznaczonych przez RM, ale to nie powinno mieć wpływu na to wszystko inne jest takie samo.)

<?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> 

Jednak, gdy próbuję go zainstalować, mam dość ezoteryczny błąd:

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 

Co robię źle w związku z dodaniem tej zależności?

Odpowiedz

1

To naprawdę stary, głupi problem z opakowaniem nuget. W pakiecie LispParsingLibrary znajduje się folder o nazwie "content". Co oznacza, że ​​twój pakiet będzie również potrzebował folderu zawartości.

Nie zalecamy tego w ogóle. Poproś opiekuna biblioteki LispParsingLibrary o usunięcie tego folderu lub utworzenie go podczas instalacji i kopiowania do niego plików.

myślałem mieliśmy problem złożony do śledzenia tego, ale dodałem https://github.com/chocolatey/choco/issues/290

+0

Powiązane pytanie jest http://stackoverflow.com/questions/24710818/external-packages-cannot-depend-on-packages- ten-cel-projekty-częściowa awaria – ferventcoder

+0

LispParsingLibrary nie ma folderu treści. Np. Otwarcie go w Eksploratorze pakietów NuGet pokazuje tylko folder lib/net45 z biblioteką dll i bez zawartości. – Jake

+0

@Jake gdzie znajduje się pakiet LispParsingLibrary? Nie widzę tego na Nuget lub Chocolatey. – ferventcoder

Powiązane problemy