2015-05-21 8 views
6

Ich versuche ein schokoladiges Paket zu erstellen. Ich habe zunächst eine Version erstellt, die keine Abhängigkeiten hatte, und ich legte einfach eine EXE-Datei in das Verzeichnis tools/bin und machte dann eine einfache Nuspec-Datei, und das würde die EXE-Datei korrekt in den Pfad installieren, was alles ist, was ich brauche dieses interne Werkzeug.Wie erstelle ich ein Paket, das von einem Paket abhängt, das auf Projekte abzielt?

Allerdings hat das Projekt nun neu strukturiert, so dass sie auf einer externen Abhängigkeit abhängt. Die Abhängigkeit ist ein Nuget-Paket, das sich im selben Repository wie das Hauptprojekt befindet. Um die Abhängigkeit hinzuzufügen, habe ich sie zum Abschnitt Abhängigkeiten hinzugefügt. Das Projekt selbst in Visual Studio ist ebenfalls davon abhängig. Hier ist meine nuspec-Datei: (I entfernt einige Daten, die von rm markiert, aber es sollte es nicht beeinflussen Alles andere ist gleich.)

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

Allerdings, wenn ich versuche, es zu installieren, erhalte ich eine eher esoterischen Fehler:

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 

Was mache ich falsch in Bezug auf das Hinzufügen dieser Abhängigkeit?

Antwort

1

Das ist eine wirklich alte, dumme nuget Verpackung Frage. Das Paket LispParsingLibrary enthält einen Ordner namens "content". Das bedeutet, dass Ihr Paket auch einen Inhaltsordner darin enthalten müsste.

Wir empfehlen, dass Sie gar nicht. Bitten Sie den Betreuer der LispParsingLibrary, diesen Ordner zu entfernen oder ihn bei der Installation zu erstellen und Dateien darin zu kopieren.

Ich dachte, wir ein Problem hatten diese eingereicht zu verfolgen, aber ich hinzugefügt https://github.com/chocolatey/choco/issues/290

+0

Eine weitere Frage ist http://stackoverflow.com/questions/24710818/external-packages-cannot-depend-on-packages- that-target-projects-partially-failure – ferventcoder

+0

LispParsingLibrary scheint keinen Inhaltsordner zu haben. Wenn Sie z. B. im NuGet Package Explorer öffnen, wird nur ein Ordner lib/net45 mit der DLL und keinem Inhaltsordner angezeigt. – Jake

+0

@Jake Wo findet man dieses LispParsingLibrary-Paket? Ich sehe es nicht auf Nuget oder Chocolatey. – ferventcoder

Verwandte Themen